diff --git a/crates.js b/crates.js index d1ec762f..56bcbdfd 100644 --- a/crates.js +++ b/crates.js @@ -1 +1,2 @@ -window.ALL_CRATES = ["db_core","db_sqlx_maria","db_sqlx_postgres","mcaptcha"]; \ No newline at end of file +window.ALL_CRATES = ["db_core","db_sqlx_maria","db_sqlx_postgres","mcaptcha"]; +//{"start":21,"fragment_lengths":[9,16,19,11]} \ No newline at end of file diff --git a/db_core/all.html b/db_core/all.html index be40b309..6b236949 100644 --- a/db_core/all.html +++ b/db_core/all.html @@ -1,2 +1 @@ -List of all items in this crate -

List of all items

Structs

Enums

Traits

Attribute Macros

Functions

Type Aliases

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Attribute Macros

Functions

Type Aliases

Constants

\ 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 99ace87a..d4861463 100644 --- a/db_core/dev/attr.async_trait.html +++ b/db_core/dev/attr.async_trait.html @@ -1,2 +1 @@ -async_trait in db_core::dev - Rust -

Attribute Macro db_core::dev::async_trait

#[async_trait]
\ No newline at end of file +async_trait in db_core::dev - Rust

Attribute Macro async_trait

Source
#[async_trait]
\ No newline at end of file diff --git a/db_core/dev/index.html b/db_core/dev/index.html index 179e8aba..ee2cddcc 100644 --- a/db_core/dev/index.html +++ b/db_core/dev/index.html @@ -1,3 +1,2 @@ -db_core::dev - Rust -

Module db_core::dev

source ·
Expand description

useful imports for supporting a new database

-

Re-exports§

Attribute Macros§

\ No newline at end of file +db_core::dev - Rust

Module dev

Source
Expand description

useful imports for supporting a new database

+

Re-exports§

pub use super::prelude::*;

Attribute Macros§

async_trait
\ No newline at end of file diff --git a/db_core/enum.Login.html b/db_core/enum.Login.html index a26f8d23..c44d2c99 100644 --- a/db_core/enum.Login.html +++ b/db_core/enum.Login.html @@ -1,30 +1,25 @@ -Login in db_core - Rust -

Enum db_core::Login

source ·
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+Login in db_core - Rust

Enum Login

Source
pub enum Login<'a> {
+    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§

source§

impl<'a> Clone for Login<'a>

source§

fn clone(&self) -> Login<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for Login<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de: 'a, 'a> Deserialize<'de> for Login<'a>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<'a> PartialEq for Login<'a>

source§

fn eq(&self, other: &Login<'a>) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<'a> Serialize for Login<'a>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<'a> StructuralPartialEq for Login<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for Login<'a>

§

impl<'a> Send for Login<'a>

§

impl<'a> Sync for Login<'a>

§

impl<'a> Unpin for Login<'a>

§

impl<'a> UnwindSafe for Login<'a>

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Variants§

§

Username(&'a str)

username as login

+
§

Email(&'a str)

email as login

+

Trait Implementations§

Source§

impl<'a> Clone for Login<'a>

Source§

fn clone(&self) -> Login<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Login<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de: 'a, 'a> Deserialize<'de> for Login<'a>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<'a> PartialEq for Login<'a>

Source§

fn eq(&self, other: &Login<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl<'a> Serialize for Login<'a>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'a> StructuralPartialEq for Login<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Login<'a>

§

impl<'a> RefUnwindSafe for Login<'a>

§

impl<'a> Send for Login<'a>

§

impl<'a> Sync for Login<'a>

§

impl<'a> Unpin for Login<'a>

§

impl<'a> UnwindSafe for Login<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where + T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where + T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where + T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

+
Source§

impl<T, U> Into<U> for T
where + U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where - S: Into<Dispatch>,

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

\ No newline at end of file +From<T> for U chooses to do.

+
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where + T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/db_core/errors/enum.DBError.html b/db_core/errors/enum.DBError.html index 02ee6a21..9c38e895 100644 --- a/db_core/errors/enum.DBError.html +++ b/db_core/errors/enum.DBError.html @@ -1,5 +1,4 @@ -DBError in db_core::errors - Rust -

Enum db_core::errors::DBError

source ·
pub enum DBError {
+DBError in db_core::errors - Rust

Enum DBError

Source
pub enum DBError {
     DBError(BoxDynError),
     UsernameTaken,
     EmailTaken,
@@ -19,21 +18,17 @@
 
§

CaptchaNotFound

Captcha not found

§

TrafficPatternNotFound

Traffic pattern not found

§

NotificationNotFound

Notification not found

-

Trait Implementations§

source§

impl Debug for DBError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for DBError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for DBError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

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

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

Source§

impl Debug for DBError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for DBError

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for DBError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where + T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where + T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

+
Source§

impl<T, U> Into<U> for T
where + U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where - S: Into<Dispatch>,

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
\ No newline at end of file +From<T> for U chooses to do.

+
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where + T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/db_core/errors/index.html b/db_core/errors/index.html index b7ea021a..9e23d812 100644 --- a/db_core/errors/index.html +++ b/db_core/errors/index.html @@ -1,3 +1,2 @@ -db_core::errors - Rust -

Module db_core::errors

source ·
Expand description

represents all the ways a trait can fail using this crate

-

Enums§

  • Error data structure grouping various error subtypes

Type Aliases§

  • Convenience type alias for grouping driver-specific errors
  • Generic result data structure
\ No newline at end of file +db_core::errors - Rust

Module errors

Source
Expand description

represents all the ways a trait can fail using this crate

+

Enums§

DBError
Error data structure grouping various error subtypes

Type Aliases§

BoxDynError
Convenience type alias for grouping driver-specific errors
DBResult
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 b56da251..eae7a8db 100644 --- a/db_core/errors/type.BoxDynError.html +++ b/db_core/errors/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_core::errors - Rust -

Type Alias db_core::errors::BoxDynError

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

Convenience type alias for grouping driver-specific errors

-

Aliased Type§

struct BoxDynError(/* private fields */);
\ No newline at end of file +BoxDynError in db_core::errors - Rust

Type Alias BoxDynError

Source
pub type BoxDynError = Box<dyn StdError + Send + Sync + 'static>;
Expand description

Convenience type alias for grouping driver-specific errors

+

Aliased Type§

pub struct BoxDynError(/* private fields */);
\ No newline at end of file diff --git a/db_core/errors/type.DBResult.html b/db_core/errors/type.DBResult.html index 0f67650b..ecab8ce0 100644 --- a/db_core/errors/type.DBResult.html +++ b/db_core/errors/type.DBResult.html @@ -1,6 +1,5 @@ -DBResult in db_core::errors - Rust -

Type Alias db_core::errors::DBResult

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

Generic result data structure

-

Aliased Type§

enum DBResult<V> {
+DBResult in db_core::errors - Rust

Type Alias DBResult

Source
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+

Aliased Type§

pub enum DBResult<V> {
     Ok(V),
     Err(DBError),
 }

Variants§

§1.0.0

Ok(V)

Contains the success value

diff --git a/db_core/index.html b/db_core/index.html index 1209d695..c530149f 100644 --- a/db_core/index.html +++ b/db_core/index.html @@ -1,6 +1,4 @@ -db_core - Rust -

Crate db_core

source ·
Expand description

§mCaptcha database operations

+db_core - Rust

Crate db_core

Source
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 implemented.

@@ -11,5 +9,5 @@ implemented.

  • ops: meta operations like connection pool creation, migrations and getting connection from pool
  • -

    Re-exports§

    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
    • useful imports for users working with a supported database
    • Test utilities

    Structs§

    Enums§

    • types of credentials used as identifiers during login

    Traits§

    • Trait to clone MCDatabase
    • mCaptcha’s database requirements. To implement support for $Database, kindly implement this -trait.
    \ No newline at end of file +

    Re-exports§

    pub use ops::GetConnection;

    Modules§

    dev
    useful imports for supporting a new database
    errors
    represents all the ways a trait can fail using this crate
    ops
    meta operations like migration and connecting to a database
    prelude
    useful imports for users working with a supported database
    tests
    Test utilities

    Structs§

    AddNotification
    Data required to add notification
    Captcha
    Data representing a captcha
    CreateCaptcha
    data required to create new captcha
    CreatePerformanceAnalytics
    Log Proof-of-Work CAPTCHA performance analytics
    EasyCaptcha
    Represents Easy captcha configuration
    Level
    Level struct that describes threshold-difficulty factor mapping
    NameHash
    type encapsulating username and hashed password of a user
    Notification
    Represents notification
    PerformanceAnalytics
    Proof-of-Work CAPTCHA performance analytics
    Register
    Data required to register a new user
    Secret
    datastructure representing a user’s secret
    StatsUnixTimestamp
    Captcha statistics with time recorded in UNIX epoch formats
    TrafficPattern
    User’s traffic pattern; used in generating a captcha configuration
    UpdateEmail
    data required to update them email of a user

    Enums§

    Login
    types of credentials used as identifiers during login

    Traits§

    CloneSPDatabase
    Trait to clone MCDatabase
    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 b3b08477..c8094385 100644 --- a/db_core/ops/index.html +++ b/db_core/ops/index.html @@ -1,3 +1,2 @@ -db_core::ops - Rust -

    Module db_core::ops

    source ·
    Expand description

    meta operations like migration and connecting to a database

    -

    Traits§

    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • database migrations
    \ No newline at end of file +db_core::ops - Rust

    Module ops

    Source
    Expand description

    meta operations like migration and connecting to a database

    +

    Traits§

    Connect
    Create database connection
    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 ad63f711..06652d98 100644 --- a/db_core/ops/trait.Connect.html +++ b/db_core/ops/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_core::ops - Rust -

    Trait db_core::ops::Connect

    source ·
    pub trait Connect {
    +Connect in db_core::ops - Rust

    Trait Connect

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

    Create database connection

    -

    Required Associated Types§

    source

    type Pool: MCDatabase

    database specific pool-type

    -

    Required Methods§

    source

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where +

    Required Associated Types§

    Source

    type Pool: MCDatabase

    database specific pool-type

    +

    Required Methods§

    Source

    fn connect<'async_trait>( + self, +) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    Implementors§

    \ No newline at end of file diff --git a/db_core/ops/trait.DBOps.html b/db_core/ops/trait.DBOps.html index feb21954..2a4025f3 100644 --- a/db_core/ops/trait.DBOps.html +++ b/db_core/ops/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_core::ops - Rust -

    Trait db_core::ops::DBOps

    source ·
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    +DBOps in db_core::ops - Rust

    Trait DBOps

    Source
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    Implementors§

    \ No newline at end of file diff --git a/db_core/ops/trait.GetConnection.html b/db_core/ops/trait.GetConnection.html index 7650ea9e..a1bd635b 100644 --- a/db_core/ops/trait.GetConnection.html +++ b/db_core/ops/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_core::ops - Rust -
    pub trait GetConnection {
    +GetConnection in db_core::ops - Rust

    Trait GetConnection

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

    Get database connection

    -

    Required Associated Types§

    source

    type Conn

    database connection type

    -

    Required Methods§

    source

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = DBResult<Self::Conn>> + Send + 'async_trait>>
    where +

    Required Associated Types§

    Source

    type Conn

    database connection type

    +

    Required Methods§

    Source

    fn get_conn<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = DBResult<Self::Conn>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_core/ops/trait.Migrate.html b/db_core/ops/trait.Migrate.html index 2af01596..28532905 100644 --- a/db_core/ops/trait.Migrate.html +++ b/db_core/ops/trait.Migrate.html @@ -1,15 +1,14 @@ -Migrate in db_core::ops - Rust -

    Trait db_core::ops::Migrate

    source ·
    pub trait Migrate: MCDatabase {
    +Migrate in db_core::ops - Rust

    Trait Migrate

    Source
    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait;
     }
    Expand description

    database migrations

    -

    Required Methods§

    source

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where +

    Required Methods§

    Source

    fn migrate<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    database specific error-type run migrations

    diff --git a/db_core/prelude/index.html b/db_core/prelude/index.html index e0cd95e1..00cd4e8e 100644 --- a/db_core/prelude/index.html +++ b/db_core/prelude/index.html @@ -1,3 +1,2 @@ -db_core::prelude - Rust -

    Module db_core::prelude

    source ·
    Expand description

    useful imports for users working with a supported database

    -

    Re-exports§

    \ No newline at end of file +db_core::prelude - Rust

    Module prelude

    Source
    Expand description

    useful imports for users working with a supported database

    +

    Re-exports§

    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 a98b8554..6522d675 100644 --- a/db_core/struct.AddNotification.html +++ b/db_core/struct.AddNotification.html @@ -1,34 +1,29 @@ -AddNotification in db_core - Rust -
    pub struct AddNotification<'a> {
    -    pub to: &'a str,
    -    pub from: &'a str,
    -    pub heading: &'a str,
    -    pub message: &'a str,
    +AddNotification in db_core - Rust

    Struct AddNotification

    Source
    pub struct AddNotification<'a> {
    +    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

    message of the notification

    -

    Trait Implementations§

    source§

    impl<'a> Clone for AddNotification<'a>

    source§

    fn clone(&self) -> AddNotification<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> Debug for AddNotification<'a>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'a> Default for AddNotification<'a>

    source§

    fn default() -> AddNotification<'a>

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

    impl<'de: 'a, 'a> Deserialize<'de> for AddNotification<'a>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<'a> PartialEq for AddNotification<'a>

    source§

    fn eq(&self, other: &AddNotification<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl<'a> Serialize for AddNotification<'a>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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

    message of the notification

    +

    Trait Implementations§

    Source§

    impl<'a> Clone for AddNotification<'a>

    Source§

    fn clone(&self) -> AddNotification<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> Debug for AddNotification<'a>

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'a> Default for AddNotification<'a>

    Source§

    fn default() -> AddNotification<'a>

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

    impl<'de: 'a, 'a> Deserialize<'de> for AddNotification<'a>

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl<'a> PartialEq for AddNotification<'a>

    Source§

    fn eq(&self, other: &AddNotification<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl<'a> Serialize for AddNotification<'a>

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AddNotification<'a>

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.Captcha.html b/db_core/struct.Captcha.html index 7dd5480a..b8df2f63 100644 --- a/db_core/struct.Captcha.html +++ b/db_core/struct.Captcha.html @@ -1,34 +1,29 @@ -Captcha in db_core - Rust -

    Struct db_core::Captcha

    source ·
    pub struct Captcha {
    -    pub config_id: i32,
    -    pub duration: i32,
    -    pub description: String,
    -    pub key: String,
    +Captcha in db_core - Rust

    Struct Captcha

    Source
    pub struct Captcha {
    +    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§

    source§

    impl Clone for Captcha

    source§

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Captcha

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Captcha

    source§

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Captcha

    source§

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for Captcha

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Clone for Captcha

    Source§

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Captcha

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for Captcha

    Source§

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Captcha

    Source§

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for Captcha

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.CreateCaptcha.html b/db_core/struct.CreateCaptcha.html index d6eebd7a..82eff775 100644 --- a/db_core/struct.CreateCaptcha.html +++ b/db_core/struct.CreateCaptcha.html @@ -1,32 +1,27 @@ -CreateCaptcha in db_core - Rust -

    Struct db_core::CreateCaptcha

    source ·
    pub struct CreateCaptcha<'a> {
    -    pub duration: i32,
    -    pub description: &'a str,
    -    pub key: &'a str,
    +CreateCaptcha in db_core - Rust

    Struct CreateCaptcha

    Source
    pub struct CreateCaptcha<'a> {
    +    pub duration: i32,
    +    pub description: &'a str,
    +    pub key: &'a str,
     }
    Expand description

    data required 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§

    source§

    impl<'a> Clone for CreateCaptcha<'a>

    source§

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> Debug for CreateCaptcha<'a>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'a> Default for CreateCaptcha<'a>

    source§

    fn default() -> CreateCaptcha<'a>

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

    impl<'de: 'a, 'a> Deserialize<'de> for CreateCaptcha<'a>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<'a> PartialEq for CreateCaptcha<'a>

    source§

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl<'a> Serialize for CreateCaptcha<'a>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §duration: i32

    cool down duration

    +
    §description: &'a str

    description of the captcha

    +
    §key: &'a str

    secret key of the captcha

    +

    Trait Implementations§

    Source§

    impl<'a> Clone for CreateCaptcha<'a>

    Source§

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> Debug for CreateCaptcha<'a>

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'a> Default for CreateCaptcha<'a>

    Source§

    fn default() -> CreateCaptcha<'a>

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

    impl<'de: 'a, 'a> Deserialize<'de> for CreateCaptcha<'a>

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl<'a> PartialEq for CreateCaptcha<'a>

    Source§

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl<'a> Serialize for CreateCaptcha<'a>

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CreateCaptcha<'a>

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.CreatePerformanceAnalytics.html b/db_core/struct.CreatePerformanceAnalytics.html index 289926ef..98d9c260 100644 --- a/db_core/struct.CreatePerformanceAnalytics.html +++ b/db_core/struct.CreatePerformanceAnalytics.html @@ -1,32 +1,27 @@ -CreatePerformanceAnalytics in db_core - Rust -
    pub struct CreatePerformanceAnalytics {
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +CreatePerformanceAnalytics in db_core - Rust

    Struct CreatePerformanceAnalytics

    Source
    pub struct CreatePerformanceAnalytics {
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Log Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    source§

    impl Clone for CreatePerformanceAnalytics

    source§

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for CreatePerformanceAnalytics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for CreatePerformanceAnalytics

    source§

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for CreatePerformanceAnalytics

    source§

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for CreatePerformanceAnalytics

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    Source§

    impl Clone for CreatePerformanceAnalytics

    Source§

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for CreatePerformanceAnalytics

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for CreatePerformanceAnalytics

    Source§

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for CreatePerformanceAnalytics

    Source§

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for CreatePerformanceAnalytics

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.EasyCaptcha.html b/db_core/struct.EasyCaptcha.html index 040d1800..20bba08b 100644 --- a/db_core/struct.EasyCaptcha.html +++ b/db_core/struct.EasyCaptcha.html @@ -1,34 +1,29 @@ -EasyCaptcha in db_core - Rust -

    Struct db_core::EasyCaptcha

    source ·
    pub struct EasyCaptcha {
    +EasyCaptcha in db_core - Rust

    Struct EasyCaptcha

    Source
    pub struct EasyCaptcha {
         pub traffic_pattern: TrafficPattern,
    -    pub key: String,
    -    pub description: String,
    -    pub username: String,
    +    pub key: String,
    +    pub description: String,
    +    pub username: String,
     }
    Expand description

    Represents Easy captcha configuration

    Fields§

    §traffic_pattern: TrafficPattern

    traffic pattern of easy captcha

    -
    §key: String

    captcha key/sitekey

    -
    §description: String

    captcha description

    -
    §username: String

    Owner of the captcha configuration

    -

    Trait Implementations§

    source§

    impl Clone for EasyCaptcha

    source§

    fn clone(&self) -> EasyCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for EasyCaptcha

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for EasyCaptcha

    source§

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for EasyCaptcha

    source§

    fn eq(&self, other: &EasyCaptcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for EasyCaptcha

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    §key: String

    captcha key/sitekey

    +
    §description: String

    captcha description

    +
    §username: String

    Owner of the captcha configuration

    +

    Trait Implementations§

    Source§

    impl Clone for EasyCaptcha

    Source§

    fn clone(&self) -> EasyCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for EasyCaptcha

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for EasyCaptcha

    Source§

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for EasyCaptcha

    Source§

    fn eq(&self, other: &EasyCaptcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for EasyCaptcha

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.Level.html b/db_core/struct.Level.html index 5020e966..4b40517f 100644 --- a/db_core/struct.Level.html +++ b/db_core/struct.Level.html @@ -1,33 +1,28 @@ -Level in db_core - Rust -

    Struct db_core::Level

    pub struct Level {
    -    pub visitor_threshold: u32,
    -    pub difficulty_factor: u32,
    +Level in db_core - Rust

    Struct Level

    pub struct Level {
    +    pub visitor_threshold: u32,
    +    pub difficulty_factor: u32,
     }
    Expand description

    Level struct that describes threshold-difficulty factor mapping

    -

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( +

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl Freeze for Level

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.NameHash.html b/db_core/struct.NameHash.html index 640e2d70..372739e1 100644 --- a/db_core/struct.NameHash.html +++ b/db_core/struct.NameHash.html @@ -1,30 +1,25 @@ -NameHash in db_core - Rust -

    Struct db_core::NameHash

    source ·
    pub struct NameHash {
    -    pub username: String,
    -    pub hash: String,
    +NameHash in db_core - Rust

    Struct NameHash

    Source
    pub struct NameHash {
    +    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§

    source§

    impl Clone for NameHash

    source§

    fn clone(&self) -> NameHash

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NameHash

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for NameHash

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for NameHash

    source§

    fn eq(&self, other: &NameHash) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for NameHash

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §username: String

    username

    +
    §hash: String

    hashed password

    +

    Trait Implementations§

    Source§

    impl Clone for NameHash

    Source§

    fn clone(&self) -> NameHash

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for NameHash

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for NameHash

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for NameHash

    Source§

    fn eq(&self, other: &NameHash) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for NameHash

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.Notification.html b/db_core/struct.Notification.html index 212c48cc..436fef47 100644 --- a/db_core/struct.Notification.html +++ b/db_core/struct.Notification.html @@ -1,36 +1,31 @@ -Notification in db_core - Rust -

    Struct db_core::Notification

    source ·
    pub struct Notification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<i64>,
    -    pub id: Option<i32>,
    +Notification in db_core - Rust

    Struct Notification

    Source
    pub struct Notification {
    +    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§

    source§

    impl Clone for Notification

    source§

    fn clone(&self) -> Notification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Notification

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Notification

    source§

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Notification

    source§

    fn eq(&self, other: &Notification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for Notification

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Clone for Notification

    Source§

    fn clone(&self) -> Notification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Notification

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for Notification

    Source§

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Notification

    Source§

    fn eq(&self, other: &Notification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for Notification

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.PerformanceAnalytics.html b/db_core/struct.PerformanceAnalytics.html index dee33078..ad663939 100644 --- a/db_core/struct.PerformanceAnalytics.html +++ b/db_core/struct.PerformanceAnalytics.html @@ -1,34 +1,29 @@ -PerformanceAnalytics in db_core - Rust -
    pub struct PerformanceAnalytics {
    -    pub id: usize,
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +PerformanceAnalytics in db_core - Rust

    Struct PerformanceAnalytics

    Source
    pub struct PerformanceAnalytics {
    +    pub id: usize,
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §id: usize

    log ID

    -
    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    source§

    impl Clone for PerformanceAnalytics

    source§

    fn clone(&self) -> PerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PerformanceAnalytics

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for PerformanceAnalytics

    source§

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for PerformanceAnalytics

    source§

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for PerformanceAnalytics

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §id: usize

    log ID

    +
    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    Source§

    impl Clone for PerformanceAnalytics

    Source§

    fn clone(&self) -> PerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for PerformanceAnalytics

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for PerformanceAnalytics

    Source§

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for PerformanceAnalytics

    Source§

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for PerformanceAnalytics

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.Register.html b/db_core/struct.Register.html index d3785b6c..45683659 100644 --- a/db_core/struct.Register.html +++ b/db_core/struct.Register.html @@ -1,34 +1,29 @@ -Register in db_core - Rust -

    Struct db_core::Register

    source ·
    pub struct Register<'a> {
    -    pub username: &'a str,
    -    pub secret: &'a str,
    -    pub hash: &'a str,
    -    pub email: Option<&'a str>,
    +Register in db_core - Rust

    Struct Register

    Source
    pub struct Register<'a> {
    +    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§

    source§

    impl<'a> Clone for Register<'a>

    source§

    fn clone(&self) -> Register<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> Debug for Register<'a>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de: 'a, 'a> Deserialize<'de> for Register<'a>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<'a> PartialEq for Register<'a>

    source§

    fn eq(&self, other: &Register<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl<'a> Serialize for Register<'a>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl<'a> Clone for Register<'a>

    Source§

    fn clone(&self) -> Register<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> Debug for Register<'a>

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de: 'a, 'a> Deserialize<'de> for Register<'a>

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl<'a> PartialEq for Register<'a>

    Source§

    fn eq(&self, other: &Register<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl<'a> Serialize for Register<'a>

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Register<'a>

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.Secret.html b/db_core/struct.Secret.html index 02f00aec..3caa723b 100644 --- a/db_core/struct.Secret.html +++ b/db_core/struct.Secret.html @@ -1,28 +1,23 @@ -Secret in db_core - Rust -

    Struct db_core::Secret

    source ·
    pub struct Secret {
    -    pub secret: String,
    +Secret in db_core - Rust

    Struct Secret

    Source
    pub struct Secret {
    +    pub secret: String,
     }
    Expand description

    datastructure representing a user’s secret

    -

    Fields§

    §secret: String

    user’s secret

    -

    Trait Implementations§

    source§

    impl Clone for Secret

    source§

    fn clone(&self) -> Secret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Secret

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Secret

    source§

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Secret

    source§

    fn eq(&self, other: &Secret) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for Secret

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §secret: String

    user’s secret

    +

    Trait Implementations§

    Source§

    impl Clone for Secret

    Source§

    fn clone(&self) -> Secret

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Secret

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for Secret

    Source§

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Secret

    Source§

    fn eq(&self, other: &Secret) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for Secret

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    §

    impl Freeze for Secret

    §

    impl RefUnwindSafe for Secret

    §

    impl Send for Secret

    §

    impl Sync for Secret

    §

    impl Unpin for Secret

    §

    impl UnwindSafe for Secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.StatsUnixTimestamp.html b/db_core/struct.StatsUnixTimestamp.html index e7b44740..c05d51b2 100644 --- a/db_core/struct.StatsUnixTimestamp.html +++ b/db_core/struct.StatsUnixTimestamp.html @@ -1,32 +1,27 @@ -StatsUnixTimestamp in db_core - Rust -
    pub struct StatsUnixTimestamp {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    +StatsUnixTimestamp in db_core - Rust

    Struct StatsUnixTimestamp

    Source
    pub struct StatsUnixTimestamp {
    +    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§

    source§

    impl Clone for StatsUnixTimestamp

    source§

    fn clone(&self) -> StatsUnixTimestamp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for StatsUnixTimestamp

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for StatsUnixTimestamp

    source§

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for StatsUnixTimestamp

    source§

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for StatsUnixTimestamp

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Clone for StatsUnixTimestamp

    Source§

    fn clone(&self) -> StatsUnixTimestamp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for StatsUnixTimestamp

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for StatsUnixTimestamp

    Source§

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for StatsUnixTimestamp

    Source§

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for StatsUnixTimestamp

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.TrafficPattern.html b/db_core/struct.TrafficPattern.html index ac4d439b..7e32a8b0 100644 --- a/db_core/struct.TrafficPattern.html +++ b/db_core/struct.TrafficPattern.html @@ -1,32 +1,27 @@ -TrafficPattern in db_core - Rust -

    Struct db_core::TrafficPattern

    source ·
    pub struct TrafficPattern {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    +TrafficPattern in db_core - Rust

    Struct TrafficPattern

    Source
    pub struct TrafficPattern {
    +    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>

    traffic that bought the user’s website down; optional

    -

    Trait Implementations§

    source§

    impl Clone for TrafficPattern

    source§

    fn clone(&self) -> TrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for TrafficPattern

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for TrafficPattern

    source§

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for TrafficPattern

    source§

    fn eq(&self, other: &TrafficPattern) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for TrafficPattern

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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>

    traffic that bought the user’s website down; optional

    +

    Trait Implementations§

    Source§

    impl Clone for TrafficPattern

    Source§

    fn clone(&self) -> TrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for TrafficPattern

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for TrafficPattern

    Source§

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for TrafficPattern

    Source§

    fn eq(&self, other: &TrafficPattern) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for TrafficPattern

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/struct.UpdateEmail.html b/db_core/struct.UpdateEmail.html index 0f550099..622b7e92 100644 --- a/db_core/struct.UpdateEmail.html +++ b/db_core/struct.UpdateEmail.html @@ -1,30 +1,25 @@ -UpdateEmail in db_core - Rust -

    Struct db_core::UpdateEmail

    source ·
    pub struct UpdateEmail<'a> {
    -    pub username: &'a str,
    -    pub new_email: &'a str,
    +UpdateEmail in db_core - Rust

    Struct UpdateEmail

    Source
    pub struct UpdateEmail<'a> {
    +    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§

    source§

    impl<'a> Clone for UpdateEmail<'a>

    source§

    fn clone(&self) -> UpdateEmail<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> Debug for UpdateEmail<'a>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de: 'a, 'a> Deserialize<'de> for UpdateEmail<'a>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<'a> PartialEq for UpdateEmail<'a>

    source§

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl<'a> Serialize for UpdateEmail<'a>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §username: &'a str

    username of the user

    +
    §new_email: &'a str

    new email address of the user

    +

    Trait Implementations§

    Source§

    impl<'a> Clone for UpdateEmail<'a>

    Source§

    fn clone(&self) -> UpdateEmail<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> Debug for UpdateEmail<'a>

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de: 'a, 'a> Deserialize<'de> for UpdateEmail<'a>

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl<'a> PartialEq for UpdateEmail<'a>

    Source§

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl<'a> Serialize for UpdateEmail<'a>

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for UpdateEmail<'a>

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_core/tests/constant.LEVELS.html b/db_core/tests/constant.LEVELS.html index bc84316e..7213e0e8 100644 --- a/db_core/tests/constant.LEVELS.html +++ b/db_core/tests/constant.LEVELS.html @@ -1,3 +1,2 @@ -LEVELS in db_core::tests - Rust -

    Constant db_core::tests::LEVELS

    source ·
    pub const LEVELS: [Level; 3];
    Expand description

    levels for complex captcha config

    +LEVELS in db_core::tests - Rust

    Constant LEVELS

    Source
    pub const LEVELS: [Level; 3];
    Expand description

    levels for complex captcha config

    \ No newline at end of file diff --git a/db_core/tests/constant.TRAFFIC_PATTERN.html b/db_core/tests/constant.TRAFFIC_PATTERN.html index 93bdf92f..786dea15 100644 --- a/db_core/tests/constant.TRAFFIC_PATTERN.html +++ b/db_core/tests/constant.TRAFFIC_PATTERN.html @@ -1,3 +1,2 @@ -TRAFFIC_PATTERN in db_core::tests - Rust -

    Constant db_core::tests::TRAFFIC_PATTERN

    source ·
    pub const TRAFFIC_PATTERN: TrafficPattern;
    Expand description

    easy traffic pattern

    +TRAFFIC_PATTERN in db_core::tests - Rust

    Constant TRAFFIC_PATTERN

    Source
    pub const TRAFFIC_PATTERN: TrafficPattern;
    Expand description

    easy traffic pattern

    \ 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 e6c05bba..6d593bf0 100644 --- a/db_core/tests/fn.database_works.html +++ b/db_core/tests/fn.database_works.html @@ -1,10 +1,9 @@ -database_works in db_core::tests - Rust -

    Function db_core::tests::database_works

    source ·
    pub async fn database_works<'a, T: MCDatabase>(
    -    db: &T,
    +database_works in db_core::tests - Rust

    Function 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>
    +    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 c8e0fb6f..a53982d1 100644 --- a/db_core/tests/index.html +++ b/db_core/tests/index.html @@ -1,3 +1,2 @@ -db_core::tests - Rust -

    Module db_core::tests

    source ·
    Expand description

    Test utilities

    -

    Constants§

    Functions§

    \ No newline at end of file +db_core::tests - Rust

    Module tests

    Source
    Expand description

    Test utilities

    +

    Constants§

    LEVELS
    levels for complex captcha config
    TRAFFIC_PATTERN
    easy traffic pattern

    Functions§

    database_works
    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 dc7abf1d..5da5c5d6 100644 --- a/db_core/trait.CloneSPDatabase.html +++ b/db_core/trait.CloneSPDatabase.html @@ -1,8 +1,7 @@ -CloneSPDatabase in db_core - Rust -
    pub trait CloneSPDatabase {
    +CloneSPDatabase in db_core - Rust

    Trait CloneSPDatabase

    Source
    pub trait CloneSPDatabase {
         // Required method
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +    fn clone_db(&self) -> Box<dyn MCDatabase>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    source

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    -

    Implementors§

    source§

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    \ No newline at end of file +

    Required Methods§

    Source

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    +

    Implementors§

    Source§

    impl<T> CloneSPDatabase for T
    where + T: MCDatabase + Clone + 'static,

    \ No newline at end of file diff --git a/db_core/trait.MCDatabase.html b/db_core/trait.MCDatabase.html index e1bd887d..378cfc96 100644 --- a/db_core/trait.MCDatabase.html +++ b/db_core/trait.MCDatabase.html @@ -1,139 +1,141 @@ -MCDatabase in db_core - Rust -

    Trait db_core::MCDatabase

    source ·
    pub trait MCDatabase: Send + Sync + CloneSPDatabase {
    +MCDatabase in db_core - Rust

    Trait MCDatabase

    Source
    pub trait MCDatabase:
    +    Send
    +    + Sync
    +    + CloneSPDatabase {
     
    Show 49 methods // Required methods fn ping<'life0, 'async_trait>( - &'life0 self - ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>> + &'life0 self, + ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + p: &'life1 Register<'_>, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>> + email: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + p: &'life1 UpdateEmail<'_>, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> - ) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>> + l: &'life1 Login<'_>, + ) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + p: &'life1 NameHash, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + current: &'life1 str, + new: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + username: &'life1 str, + secret: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + username: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, @@ -141,10 +143,10 @@ 'life3: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, @@ -152,53 +154,53 @@ 'life3: '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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + captcha_key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, @@ -206,578 +208,578 @@ 'life3: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>> + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + p: &'life1 AddNotification<'_>, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + username: &'life1 str, + id: i32, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: '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>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: '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>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>> + captcha_id: &'life1 str, + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>> + psuedo_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize - ) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>> + page: usize, + ) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 - ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, + ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 - ) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + ) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 - ) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>> + duration: u32, + ) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 - ) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>> + duration: u32, + location: u32, + ) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; // Provided method fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... }
    }
    Expand description

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

    -

    Required Methods§

    source

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where +

    Required Methods§

    Source

    fn ping<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    ping DB

    -
    source

    fn register<'life0, 'life1, 'async_trait>( +

    Source

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    register a new user

    -
    source

    fn delete_user<'life0, 'life1, 'async_trait>( +

    Source

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    delete a user

    -
    source

    fn username_exists<'life0, 'life1, 'async_trait>( +

    Source

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    check if username exists

    -
    source

    fn get_email<'life0, 'life1, 'async_trait>( +

    Source

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get user email

    -
    source

    fn email_exists<'life0, 'life1, 'async_trait>( +

    Source

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    check if email exists

    -
    source

    fn update_email<'life0, 'life1, 'async_trait>( +

    Source

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    update a user’s email

    -
    source

    fn get_password<'life0, 'life1, 'async_trait>( +

    Source

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s password

    -
    source

    fn update_password<'life0, 'life1, 'async_trait>( +

    Source

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    update user’s password

    -
    source

    fn update_username<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update username

    -
    source

    fn get_secret<'life0, 'life1, 'async_trait>( +

    Source

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s secret

    -
    source

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( +

    Source

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s secret from a captcha key

    -
    source

    fn update_secret<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update a user’s secret

    -
    source

    fn create_captcha<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    create new captcha

    -
    source

    fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get captcha config

    -
    source

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( +

    Source

    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 + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get all captchas belonging to user

    -
    source

    fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    -
    source

    fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source

    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 + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    update captcha key; doesn’t change metadata

    -
    source

    fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source

    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 + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    Add levels to captcha

    -
    source

    fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    check if captcha exists

    -
    source

    fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete all levels of a captcha

    -
    source

    fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete captcha

    -
    source

    fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get captcha levels

    -
    source

    fn get_captcha_cooldown<'life0, 'life1, 'async_trait>( +

    Source

    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 + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get captcha’s cooldown period

    -
    source

    fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source

    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 + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    Add traffic configuration

    -
    source

    fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get traffic configuration

    -
    source

    fn get_all_easy_captchas<'life0, 'async_trait>( +

    Source

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get all easy captcha configurations on instance

    -
    source

    fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete traffic configuration

    -
    source

    fn create_notification<'life0, 'life1, 'async_trait>( +

    Source

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    create new notification

    -
    source

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( +

    Source

    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 + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get all unread notifications

    -
    source

    fn mark_notification_read<'life0, 'life1, 'async_trait>( +

    Source

    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 + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    mark a notification read

    -
    source

    fn record_fetch<'life0, 'life1, 'async_trait>( +

    Source

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig fetches

    -
    source

    fn record_solve<'life0, 'life1, 'async_trait>( +

    Source

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig solves

    -
    source

    fn record_confirm<'life0, 'life1, 'async_trait>( +

    Source

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig confirms

    -
    source

    fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig fetches

    -
    source

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig solves

    -
    source

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig confirms

    -
    source

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoW timing

    -
    source

    fn analytics_fetch<'life0, 'life1, 'async_trait>( +

    Source

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    fetch PoW analytics

    -
    source

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( +

    Source

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    -
    source

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( +

    Source

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get psuedo ID from campaign ID

    -
    source

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( +

    Source

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get campaign ID from psuedo ID

    -
    source

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( +

    Source

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Delete all records for campaign

    -
    source

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( +

    Source

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get all psuedo IDs

    -
    source

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( +

    Source

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Track maximum nonce received against captcha levels

    -
    source

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( +

    Source

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    -
    source

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( +

    Source

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get number of analytics entries that are under a certain duration

    -
    source

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( +

    Source

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    -

    Provided Methods§

    source

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( +

    Provided Methods§

    Source

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID

    -

    Trait Implementations§

    source§

    impl Clone for Box<dyn MCDatabase>

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file +

    Trait Implementations§

    Source§

    impl Clone for Box<dyn MCDatabase>

    Source§

    fn clone(&self) -> Self

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/all.html b/db_sqlx_maria/all.html index 0885d255..86c793fb 100644 --- a/db_sqlx_maria/all.html +++ b/db_sqlx_maria/all.html @@ -1,2 +1 @@ -List of all items in this crate -

    List of all items

    Structs

    Enums

    Traits

    Attribute Macros

    Functions

    Type Aliases

    Constants

    \ No newline at end of file +List of all items in this crate

    List of all items

    Structs

    Enums

    Traits

    Attribute Macros

    Functions

    Type Aliases

    Constants

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/attr.async_trait.html b/db_sqlx_maria/dev/attr.async_trait.html index f2604f45..d51fda7b 100644 --- a/db_sqlx_maria/dev/attr.async_trait.html +++ b/db_sqlx_maria/dev/attr.async_trait.html @@ -1,2 +1 @@ -async_trait in db_sqlx_maria::dev - Rust -

    Attribute Macro db_sqlx_maria::dev::async_trait

    #[async_trait]
    \ No newline at end of file +async_trait in db_sqlx_maria::dev - Rust

    Attribute Macro async_trait

    Source
    #[async_trait]
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/enum.DBError.html b/db_sqlx_maria/dev/enum.DBError.html index a852a5c3..462d3f72 100644 --- a/db_sqlx_maria/dev/enum.DBError.html +++ b/db_sqlx_maria/dev/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_maria::dev - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_maria::dev - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/enum.Error.html b/db_sqlx_maria/dev/enum.Error.html index 7dee7c48..90e69ac9 100644 --- a/db_sqlx_maria/dev/enum.Error.html +++ b/db_sqlx_maria/dev/enum.Error.html @@ -1,64 +1,78 @@ -Error in db_sqlx_maria::dev - Rust -

    Enum db_sqlx_maria::dev::Error

    #[non_exhaustive]
    pub enum Error { -
    Show 16 variants Configuration(Box<dyn Error + Send + Sync>), - Database(Box<dyn DatabaseError>), - Io(Error), - Tls(Box<dyn Error + Send + Sync>), - Protocol(String), +Error in db_sqlx_maria::dev - Rust

    Enum Error

    #[non_exhaustive]
    pub enum Error { +
    Show 20 variants Configuration(Box<dyn Error + Sync + Send>), + InvalidArgument(String), + Database(Box<dyn DatabaseError>), + Io(Error), + Tls(Box<dyn Error + Sync + Send>), + 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>, + index: String, + source: Box<dyn Error + Sync + Send>, }, - Decode(Box<dyn Error + Send + Sync>), - AnyDriverError(Box<dyn Error + Send + Sync>), + Encode(Box<dyn Error + Sync + Send>), + Decode(Box<dyn Error + Sync + Send>), + AnyDriverError(Box<dyn Error + Sync + Send>), PoolTimedOut, PoolClosed, WorkerCrashed, - Migrate(Box<MigrateError>), + Migrate(Box<MigrateError>), + InvalidSavePointStatement, + BeginFailed,
    }
    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>)

    Error occurred while parsing a connection string.

    -
    §

    Database(Box<dyn DatabaseError>)

    Error returned from the database.

    -
    §

    Io(Error)

    Error communicating with the database backend.

    -
    §

    Tls(Box<dyn Error + Send + Sync>)

    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>)

    Error occurred while parsing a connection string.

    +
    §

    InvalidArgument(String)

    One or more of the arguments to the called function was invalid.

    +

    The string contains more information.

    +
    §

    Database(Box<dyn DatabaseError>)

    Error returned from the database.

    +
    §

    Io(Error)

    Error communicating with the database backend.

    +
    §

    Tls(Box<dyn Error + Sync + Send>)

    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>

    Error occurred while decoding a value from a specific column.

    -
    §

    Decode(Box<dyn Error + Send + Sync>)

    Error occurred while decoding a value.

    -
    §

    AnyDriverError(Box<dyn Error + Send + Sync>)

    Error occurred within the Any driver mapping to/from the native driver.

    +
    §

    TypeNotFound

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

    +

    Fields

    §type_name: String
    §

    ColumnIndexOutOfBounds

    Column index was out of bounds.

    +

    Fields

    §index: usize
    §len: usize
    §

    ColumnNotFound(String)

    No column found for the given name.

    +
    §

    ColumnDecode

    Error occurred while decoding a value from a specific column.

    +

    Fields

    §index: String
    §source: Box<dyn Error + Sync + Send>
    §

    Encode(Box<dyn Error + Sync + Send>)

    Error occured while encoding a value.

    +
    §

    Decode(Box<dyn Error + Sync + Send>)

    Error occurred while decoding a value.

    +
    §

    AnyDriverError(Box<dyn Error + Sync + Send>)

    Error occurred within the Any driver mapping to/from the native driver.

    §

    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>)

    Implementations§

    §

    impl Error

    pub fn into_database_error(self) -> Option<Box<dyn DatabaseError>>

    pub fn as_database_error(&self) -> Option<&(dyn DatabaseError + 'static)>

    Trait Implementations§

    §

    impl Debug for Error

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for Error

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for Error

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    §

    impl<E> From<E> for Error
    where - E: DatabaseError,

    §

    fn from(error: E) -> Error

    Converts to this type from the input type.
    §

    impl From<Error> for Error

    §

    fn from(source: Error) -> Error

    Converts to this type from the input type.
    §

    impl From<MigrateError> for Error

    §

    fn from(error: MigrateError) -> Error

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl !UnwindSafe for Error

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    §

    Migrate(Box<MigrateError>)

    §

    InvalidSavePointStatement

    §

    BeginFailed

    Implementations§

    §

    impl Error

    pub fn into_database_error(self) -> Option<Box<dyn DatabaseError>>

    pub fn as_database_error(&self) -> Option<&(dyn DatabaseError + 'static)>

    Trait Implementations§

    §

    impl Debug for Error

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for Error

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for Error

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    §

    impl<E> From<E> for Error
    where + E: DatabaseError,

    §

    fn from(error: E) -> Error

    Converts to this type from the input type.
    §

    impl From<Error> for Error

    §

    fn from(source: Error) -> Error

    Converts to this type from the input type.
    §

    impl From<MigrateError> for Error

    §

    fn from(error: MigrateError) -> Error

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl Freeze for Error

    §

    impl !RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl !UnwindSafe for Error

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/enum.Login.html b/db_sqlx_maria/dev/enum.Login.html index ba56d8e4..412eecd5 100644 --- a/db_sqlx_maria/dev/enum.Login.html +++ b/db_sqlx_maria/dev/enum.Login.html @@ -1,36 +1,43 @@ -Login in db_sqlx_maria::dev - Rust -

    Enum db_sqlx_maria::dev::Login

    pub enum Login<'a> {
    -    Username(&'a str),
    -    Email(&'a str),
    +Login in db_sqlx_maria::dev - Rust

    Enum Login

    pub enum Login<'a> {
    +    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§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( +

    Variants§

    §

    Username(&'a str)

    username as login

    +
    §

    Email(&'a str)

    email as login

    +

    Trait Implementations§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Login<'a>

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/errors/enum.DBError.html b/db_sqlx_maria/dev/errors/enum.DBError.html index 9e7c195a..1561a263 100644 --- a/db_sqlx_maria/dev/errors/enum.DBError.html +++ b/db_sqlx_maria/dev/errors/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_maria::dev::errors - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_maria::dev::errors - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/errors/index.html b/db_sqlx_maria/dev/errors/index.html index 578cc6b3..d73b81f8 100644 --- a/db_sqlx_maria/dev/errors/index.html +++ b/db_sqlx_maria/dev/errors/index.html @@ -1,3 +1,2 @@ -db_sqlx_maria::dev::errors - Rust -

    Module db_sqlx_maria::dev::errors

    Expand description

    represents all the ways a trait can fail using this crate

    -

    Enums§

    • Error data structure grouping various error subtypes

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure
    \ No newline at end of file +db_sqlx_maria::dev::errors - Rust

    Module errors

    Expand description

    represents all the ways a trait can fail using this crate

    +

    Enums§

    DBError
    Error data structure grouping various error subtypes

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    Generic result data structure
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/errors/type.BoxDynError.html b/db_sqlx_maria/dev/errors/type.BoxDynError.html index 65ca9e8e..a17233d6 100644 --- a/db_sqlx_maria/dev/errors/type.BoxDynError.html +++ b/db_sqlx_maria/dev/errors/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_maria::dev::errors - Rust -

    Type Alias db_sqlx_maria::dev::errors::BoxDynError

    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_maria::dev::errors - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/errors/type.DBResult.html b/db_sqlx_maria/dev/errors/type.DBResult.html index f768fd6a..9f27af9d 100644 --- a/db_sqlx_maria/dev/errors/type.DBResult.html +++ b/db_sqlx_maria/dev/errors/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_maria::dev::errors - Rust -

    Type Alias db_sqlx_maria::dev::errors::DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_maria::dev::errors - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/index.html b/db_sqlx_maria/dev/index.html index 8308e46b..24063e3b 100644 --- a/db_sqlx_maria/dev/index.html +++ b/db_sqlx_maria/dev/index.html @@ -1,3 +1,2 @@ -db_sqlx_maria::dev - Rust -

    Module db_sqlx_maria::dev

    source ·

    Re-exports§

    Modules§

    • represents all the ways a trait can fail using this crate
    • meta operations like migration and connecting to a database
    • useful imports for users working with a supported database
    • Test utilities

    Structs§

    Enums§

    • Error data structure grouping various error subtypes
    • Represents all the ways a method can fail within SQLx.
    • types of credentials used as identifiers during login

    Traits§

    • Trait to clone MCDatabase
    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • mCaptcha’s database requirements. To implement support for $Database, kindly implement this -trait.
    • database migrations

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure

    Attribute Macros§

    \ No newline at end of file +db_sqlx_maria::dev - Rust

    Module dev

    Source

    Re-exports§

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

    Modules§

    errors
    represents all the ways a trait can fail using this crate
    ops
    meta operations like migration and connecting to a database
    prelude
    useful imports for users working with a supported database
    tests
    Test utilities

    Structs§

    AddNotification
    Data required to add notification
    Captcha
    Data representing a captcha
    CreateCaptcha
    data required to create new captcha
    CreatePerformanceAnalytics
    Log Proof-of-Work CAPTCHA performance analytics
    EasyCaptcha
    Represents Easy captcha configuration
    Level
    Level struct that describes threshold-difficulty factor mapping
    NameHash
    type encapsulating username and hashed password of a user
    Notification
    Represents notification
    PerformanceAnalytics
    Proof-of-Work CAPTCHA performance analytics
    Register
    Data required to register a new user
    Secret
    datastructure representing a user’s secret
    StatsUnixTimestamp
    Captcha statistics with time recorded in UNIX epoch formats
    TrafficPattern
    User’s traffic pattern; used in generating a captcha configuration
    UpdateEmail
    data required to update them email of a user

    Enums§

    DBError
    Error data structure grouping various error subtypes
    Error
    Represents all the ways a method can fail within SQLx.
    Login
    types of credentials used as identifiers during login

    Traits§

    CloneSPDatabase
    Trait to clone MCDatabase
    Connect
    Create database connection
    DBOps
    Database operations trait(migrations, pool creation and fetching connection from pool)
    GetConnection
    Get database connection
    MCDatabase
    mCaptcha’s database requirements. To implement support for $Database, kindly implement this +trait.
    Migrate
    database migrations

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    Generic result data structure

    Attribute Macros§

    async_trait
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/ops/index.html b/db_sqlx_maria/dev/ops/index.html index 5d1c33ad..caf43493 100644 --- a/db_sqlx_maria/dev/ops/index.html +++ b/db_sqlx_maria/dev/ops/index.html @@ -1,3 +1,2 @@ -db_sqlx_maria::dev::ops - Rust -

    Module db_sqlx_maria::dev::ops

    Expand description

    meta operations like migration and connecting to a database

    -

    Traits§

    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • database migrations
    \ No newline at end of file +db_sqlx_maria::dev::ops - Rust

    Module ops

    Expand description

    meta operations like migration and connecting to a database

    +

    Traits§

    Connect
    Create database connection
    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_sqlx_maria/dev/ops/trait.Connect.html b/db_sqlx_maria/dev/ops/trait.Connect.html index da51209c..a9e16f50 100644 --- a/db_sqlx_maria/dev/ops/trait.Connect.html +++ b/db_sqlx_maria/dev/ops/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_maria::dev::ops - Rust -
    pub trait Connect {
    +Connect in db_sqlx_maria::dev::ops - Rust

    Trait Connect

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

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/ops/trait.DBOps.html b/db_sqlx_maria/dev/ops/trait.DBOps.html index 255da71f..dfaddb4d 100644 --- a/db_sqlx_maria/dev/ops/trait.DBOps.html +++ b/db_sqlx_maria/dev/ops/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_maria::dev::ops - Rust -

    Trait db_sqlx_maria::dev::ops::DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    +DBOps in db_sqlx_maria::dev::ops - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/ops/trait.GetConnection.html b/db_sqlx_maria/dev/ops/trait.GetConnection.html index c4da1a1b..483c6048 100644 --- a/db_sqlx_maria/dev/ops/trait.GetConnection.html +++ b/db_sqlx_maria/dev/ops/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_maria::dev::ops - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_maria::dev::ops - Rust

    Trait GetConnection

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

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_maria/dev/ops/trait.Migrate.html b/db_sqlx_maria/dev/ops/trait.Migrate.html index 5a71e9f8..b948181e 100644 --- a/db_sqlx_maria/dev/ops/trait.Migrate.html +++ b/db_sqlx_maria/dev/ops/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_maria::dev::ops - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_maria::dev::ops - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/attr.async_trait.html b/db_sqlx_maria/dev/prelude/dev/attr.async_trait.html index 9a70dc90..6881d195 100644 --- a/db_sqlx_maria/dev/prelude/dev/attr.async_trait.html +++ b/db_sqlx_maria/dev/prelude/dev/attr.async_trait.html @@ -1,2 +1 @@ -async_trait in db_sqlx_maria::dev::prelude::dev - Rust -

    Attribute Macro db_sqlx_maria::dev::prelude::dev::async_trait

    #[async_trait]
    \ No newline at end of file +async_trait in db_sqlx_maria::dev::prelude::dev - Rust

    Attribute Macro async_trait

    Source
    #[async_trait]
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/enum.DBError.html b/db_sqlx_maria/dev/prelude/dev/enum.DBError.html index 103e7de5..a736cc65 100644 --- a/db_sqlx_maria/dev/prelude/dev/enum.DBError.html +++ b/db_sqlx_maria/dev/prelude/dev/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_maria::dev::prelude::dev - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_maria::dev::prelude::dev - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/enum.Login.html b/db_sqlx_maria/dev/prelude/dev/enum.Login.html index 1b7e42eb..ce81bfed 100644 --- a/db_sqlx_maria/dev/prelude/dev/enum.Login.html +++ b/db_sqlx_maria/dev/prelude/dev/enum.Login.html @@ -1,36 +1,43 @@ -Login in db_sqlx_maria::dev::prelude::dev - Rust -
    pub enum Login<'a> {
    -    Username(&'a str),
    -    Email(&'a str),
    +Login in db_sqlx_maria::dev::prelude::dev - Rust

    Enum Login

    pub enum Login<'a> {
    +    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§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( +

    Variants§

    §

    Username(&'a str)

    username as login

    +
    §

    Email(&'a str)

    email as login

    +

    Trait Implementations§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Login<'a>

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/index.html b/db_sqlx_maria/dev/prelude/dev/index.html index c8126256..b7d8085e 100644 --- a/db_sqlx_maria/dev/prelude/dev/index.html +++ b/db_sqlx_maria/dev/prelude/dev/index.html @@ -1,4 +1,3 @@ -db_sqlx_maria::dev::prelude::dev - Rust -

    Module db_sqlx_maria::dev::prelude::dev

    Expand description

    useful imports for supporting a new database

    -

    Structs§

    Enums§

    • Error data structure grouping various error subtypes
    • types of credentials used as identifiers during login

    Traits§

    • Trait to clone MCDatabase
    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • mCaptcha’s database requirements. To implement support for $Database, kindly implement this -trait.
    • database migrations

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure

    Attribute Macros§

    \ No newline at end of file +db_sqlx_maria::dev::prelude::dev - Rust

    Module dev

    Expand description

    useful imports for supporting a new database

    +

    Structs§

    AddNotification
    Data required to add notification
    Captcha
    Data representing a captcha
    CreateCaptcha
    data required to create new captcha
    CreatePerformanceAnalytics
    Log Proof-of-Work CAPTCHA performance analytics
    EasyCaptcha
    Represents Easy captcha configuration
    Level
    Level struct that describes threshold-difficulty factor mapping
    NameHash
    type encapsulating username and hashed password of a user
    Notification
    Represents notification
    PerformanceAnalytics
    Proof-of-Work CAPTCHA performance analytics
    Register
    Data required to register a new user
    Secret
    datastructure representing a user’s secret
    StatsUnixTimestamp
    Captcha statistics with time recorded in UNIX epoch formats
    TrafficPattern
    User’s traffic pattern; used in generating a captcha configuration
    UpdateEmail
    data required to update them email of a user

    Enums§

    DBError
    Error data structure grouping various error subtypes
    Login
    types of credentials used as identifiers during login

    Traits§

    CloneSPDatabase
    Trait to clone MCDatabase
    Connect
    Create database connection
    DBOps
    Database operations trait(migrations, pool creation and fetching connection from pool)
    GetConnection
    Get database connection
    MCDatabase
    mCaptcha’s database requirements. To implement support for $Database, kindly implement this +trait.
    Migrate
    database migrations

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    Generic result data structure

    Attribute Macros§

    async_trait
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.AddNotification.html b/db_sqlx_maria/dev/prelude/dev/struct.AddNotification.html index 01be3681..fe725b18 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.AddNotification.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.AddNotification.html @@ -1,40 +1,47 @@ -AddNotification in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct AddNotification<'a> {
    -    pub to: &'a str,
    -    pub from: &'a str,
    -    pub heading: &'a str,
    -    pub message: &'a str,
    +AddNotification in db_sqlx_maria::dev::prelude::dev - Rust

    Struct AddNotification

    pub struct AddNotification<'a> {
    +    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

    message of the notification

    -

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

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

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( +

    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

    message of the notification

    +

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

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

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AddNotification<'a>

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.Captcha.html b/db_sqlx_maria/dev/prelude/dev/struct.Captcha.html index 7d91b98f..a4642a4a 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.Captcha.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.Captcha.html @@ -1,39 +1,46 @@ -Captcha in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct Captcha {
    -    pub config_id: i32,
    -    pub duration: i32,
    -    pub description: String,
    -    pub key: String,
    +Captcha in db_sqlx_maria::dev::prelude::dev - Rust

    Struct Captcha

    pub struct Captcha {
    +    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.CreateCaptcha.html b/db_sqlx_maria/dev/prelude/dev/struct.CreateCaptcha.html index 2d243aa7..0f9480fc 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.CreateCaptcha.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.CreateCaptcha.html @@ -1,38 +1,45 @@ -CreateCaptcha in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct CreateCaptcha<'a> {
    -    pub duration: i32,
    -    pub description: &'a str,
    -    pub key: &'a str,
    +CreateCaptcha in db_sqlx_maria::dev::prelude::dev - Rust

    Struct CreateCaptcha

    pub struct CreateCaptcha<'a> {
    +    pub duration: i32,
    +    pub description: &'a str,
    +    pub key: &'a str,
     }
    Expand description

    data required 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§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

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

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( +

    Fields§

    §duration: i32

    cool down duration

    +
    §description: &'a str

    description of the captcha

    +
    §key: &'a str

    secret key of the captcha

    +

    Trait Implementations§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

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

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CreateCaptcha<'a>

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.CreatePerformanceAnalytics.html b/db_sqlx_maria/dev/prelude/dev/struct.CreatePerformanceAnalytics.html index 446264a8..70256f60 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.CreatePerformanceAnalytics.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.CreatePerformanceAnalytics.html @@ -1,37 +1,44 @@ -CreatePerformanceAnalytics in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct CreatePerformanceAnalytics {
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +CreatePerformanceAnalytics in db_sqlx_maria::dev::prelude::dev - Rust

    Struct CreatePerformanceAnalytics

    pub struct CreatePerformanceAnalytics {
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Log Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.EasyCaptcha.html b/db_sqlx_maria/dev/prelude/dev/struct.EasyCaptcha.html index 08591f56..3fa4b758 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.EasyCaptcha.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.EasyCaptcha.html @@ -1,39 +1,46 @@ -EasyCaptcha in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct EasyCaptcha {
    +EasyCaptcha in db_sqlx_maria::dev::prelude::dev - Rust

    Struct EasyCaptcha

    pub struct EasyCaptcha {
         pub traffic_pattern: TrafficPattern,
    -    pub key: String,
    -    pub description: String,
    -    pub username: String,
    +    pub key: String,
    +    pub description: String,
    +    pub username: String,
     }
    Expand description

    Represents Easy captcha configuration

    Fields§

    §traffic_pattern: TrafficPattern

    traffic pattern of easy captcha

    -
    §key: String

    captcha key/sitekey

    -
    §description: String

    captcha description

    -
    §username: String

    Owner of the captcha configuration

    -

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( +

    §key: String

    captcha key/sitekey

    +
    §description: String

    captcha description

    +
    §username: String

    Owner of the captcha configuration

    +

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.Level.html b/db_sqlx_maria/dev/prelude/dev/struct.Level.html index 41ac5a70..3634de8e 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.Level.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.Level.html @@ -1,33 +1,40 @@ -Level in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct Level {
    -    pub visitor_threshold: u32,
    -    pub difficulty_factor: u32,
    +Level in db_sqlx_maria::dev::prelude::dev - Rust

    Struct Level

    pub struct Level {
    +    pub visitor_threshold: u32,
    +    pub difficulty_factor: u32,
     }
    Expand description

    Level struct that describes threshold-difficulty factor mapping

    -

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( +

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl Freeze for Level

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.NameHash.html b/db_sqlx_maria/dev/prelude/dev/struct.NameHash.html index 12ec3c81..bf1a60a3 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.NameHash.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.NameHash.html @@ -1,35 +1,42 @@ -NameHash in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct NameHash {
    -    pub username: String,
    -    pub hash: String,
    +NameHash in db_sqlx_maria::dev::prelude::dev - Rust

    Struct NameHash

    pub struct NameHash {
    +    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§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( +

    Fields§

    §username: String

    username

    +
    §hash: String

    hashed password

    +

    Trait Implementations§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.Notification.html b/db_sqlx_maria/dev/prelude/dev/struct.Notification.html index 98a5d89c..469c8bc1 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.Notification.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.Notification.html @@ -1,41 +1,48 @@ -Notification in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct Notification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<i64>,
    -    pub id: Option<i32>,
    +Notification in db_sqlx_maria::dev::prelude::dev - Rust

    Struct Notification

    pub struct Notification {
    +    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.PerformanceAnalytics.html b/db_sqlx_maria/dev/prelude/dev/struct.PerformanceAnalytics.html index 477fd2d6..44e80cab 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.PerformanceAnalytics.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.PerformanceAnalytics.html @@ -1,39 +1,46 @@ -PerformanceAnalytics in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct PerformanceAnalytics {
    -    pub id: usize,
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +PerformanceAnalytics in db_sqlx_maria::dev::prelude::dev - Rust

    Struct PerformanceAnalytics

    pub struct PerformanceAnalytics {
    +    pub id: usize,
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §id: usize

    log ID

    -
    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §id: usize

    log ID

    +
    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.Register.html b/db_sqlx_maria/dev/prelude/dev/struct.Register.html index 1e0728f9..456a36d6 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.Register.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.Register.html @@ -1,40 +1,47 @@ -Register in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct Register<'a> {
    -    pub username: &'a str,
    -    pub secret: &'a str,
    -    pub hash: &'a str,
    -    pub email: Option<&'a str>,
    +Register in db_sqlx_maria::dev::prelude::dev - Rust

    Struct Register

    pub struct Register<'a> {
    +    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( +

    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Register<'a>

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.Secret.html b/db_sqlx_maria/dev/prelude/dev/struct.Secret.html index 19f08640..7f404f3a 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.Secret.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.Secret.html @@ -1,33 +1,40 @@ -Secret in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct Secret {
    -    pub secret: String,
    +Secret in db_sqlx_maria::dev::prelude::dev - Rust

    Struct Secret

    pub struct Secret {
    +    pub secret: String,
     }
    Expand description

    datastructure representing a user’s secret

    -

    Fields§

    §secret: String

    user’s secret

    -

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( +

    Fields§

    §secret: String

    user’s secret

    +

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    §

    impl Freeze for Secret

    §

    impl RefUnwindSafe for Secret

    §

    impl Send for Secret

    §

    impl Sync for Secret

    §

    impl Unpin for Secret

    §

    impl UnwindSafe for Secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.StatsUnixTimestamp.html b/db_sqlx_maria/dev/prelude/dev/struct.StatsUnixTimestamp.html index d82672be..204698da 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.StatsUnixTimestamp.html @@ -1,37 +1,44 @@ -StatsUnixTimestamp in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct StatsUnixTimestamp {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    +StatsUnixTimestamp in db_sqlx_maria::dev::prelude::dev - Rust

    Struct StatsUnixTimestamp

    pub struct StatsUnixTimestamp {
    +    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.TrafficPattern.html b/db_sqlx_maria/dev/prelude/dev/struct.TrafficPattern.html index 835effca..4e5368c8 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.TrafficPattern.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.TrafficPattern.html @@ -1,37 +1,44 @@ -TrafficPattern in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct TrafficPattern {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    +TrafficPattern in db_sqlx_maria::dev::prelude::dev - Rust

    Struct TrafficPattern

    pub struct TrafficPattern {
    +    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>

    traffic that bought the user’s website down; optional

    -

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( +

    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>

    traffic that bought the user’s website down; optional

    +

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/struct.UpdateEmail.html b/db_sqlx_maria/dev/prelude/dev/struct.UpdateEmail.html index c723a70b..18ad84ea 100644 --- a/db_sqlx_maria/dev/prelude/dev/struct.UpdateEmail.html +++ b/db_sqlx_maria/dev/prelude/dev/struct.UpdateEmail.html @@ -1,36 +1,43 @@ -UpdateEmail in db_sqlx_maria::dev::prelude::dev - Rust -
    pub struct UpdateEmail<'a> {
    -    pub username: &'a str,
    -    pub new_email: &'a str,
    +UpdateEmail in db_sqlx_maria::dev::prelude::dev - Rust

    Struct UpdateEmail

    pub struct UpdateEmail<'a> {
    +    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§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( +

    Fields§

    §username: &'a str

    username of the user

    +
    §new_email: &'a str

    new email address of the user

    +

    Trait Implementations§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for UpdateEmail<'a>

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/trait.CloneSPDatabase.html b/db_sqlx_maria/dev/prelude/dev/trait.CloneSPDatabase.html index 3e2935e2..c1b809db 100644 --- a/db_sqlx_maria/dev/prelude/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_maria/dev/prelude/dev/trait.CloneSPDatabase.html @@ -1,8 +1,7 @@ -CloneSPDatabase in db_sqlx_maria::dev::prelude::dev - Rust -
    pub trait CloneSPDatabase {
    +CloneSPDatabase in db_sqlx_maria::dev::prelude::dev - Rust

    Trait CloneSPDatabase

    pub trait CloneSPDatabase {
         // Required method
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +    fn clone_db(&self) -> Box<dyn MCDatabase>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    +

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    Implementors§

    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    \ No newline at end of file + T: MCDatabase + Clone + 'static,
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/trait.Connect.html b/db_sqlx_maria/dev/prelude/dev/trait.Connect.html index 633df196..15ada426 100644 --- a/db_sqlx_maria/dev/prelude/dev/trait.Connect.html +++ b/db_sqlx_maria/dev/prelude/dev/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_maria::dev::prelude::dev - Rust -
    pub trait Connect {
    +Connect in db_sqlx_maria::dev::prelude::dev - Rust

    Trait Connect

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

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/trait.DBOps.html b/db_sqlx_maria/dev/prelude/dev/trait.DBOps.html index 614ad332..a9b4a8e9 100644 --- a/db_sqlx_maria/dev/prelude/dev/trait.DBOps.html +++ b/db_sqlx_maria/dev/prelude/dev/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_maria::dev::prelude::dev - Rust -
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    +DBOps in db_sqlx_maria::dev::prelude::dev - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/trait.GetConnection.html b/db_sqlx_maria/dev/prelude/dev/trait.GetConnection.html index 6518cbef..7034a805 100644 --- a/db_sqlx_maria/dev/prelude/dev/trait.GetConnection.html +++ b/db_sqlx_maria/dev/prelude/dev/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_maria::dev::prelude::dev - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_maria::dev::prelude::dev - Rust

    Trait GetConnection

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

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_maria/dev/prelude/dev/trait.MCDatabase.html b/db_sqlx_maria/dev/prelude/dev/trait.MCDatabase.html index 09e155bc..cf7867cf 100644 --- a/db_sqlx_maria/dev/prelude/dev/trait.MCDatabase.html +++ b/db_sqlx_maria/dev/prelude/dev/trait.MCDatabase.html @@ -1,139 +1,141 @@ -MCDatabase in db_sqlx_maria::dev::prelude::dev - Rust -
    pub trait MCDatabase: Send + Sync + CloneSPDatabase {
    +MCDatabase in db_sqlx_maria::dev::prelude::dev - Rust

    Trait MCDatabase

    pub trait MCDatabase:
    +    Send
    +    + Sync
    +    + CloneSPDatabase {
     
    Show 49 methods // Required methods fn ping<'life0, 'async_trait>( - &'life0 self - ) -> Pin<Box<dyn Future<Output = bool> + Send + '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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 Register<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<Option<String>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + email: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 UpdateEmail<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<NameHash, DBError>> + Send + 'async_trait>> + l: &'life1 Login<'_>, + ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 NameHash, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + current: &'life1 str, + new: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Secret, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + secret: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Captcha, DBError>> + Send + 'async_trait>> + username: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + 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 = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -141,10 +143,10 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -152,53 +154,53 @@ 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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Level>, DBError>> + Send + 'async_trait>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + 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 = Result<i32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -206,325 +208,325 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> where 'life0: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 AddNotification<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Notification>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + id: i32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + psuedo_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> + page: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 - ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 - ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> + duration: u32, + ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 - ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> + duration: u32, + location: u32, + ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; // Provided method fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait { ... }
    }
    Expand description

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

    Required Methods§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    ping DB

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    register a new user

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    delete a user

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if username exists

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get user email

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if email exists

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update a user’s email

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s password

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update user’s password

    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>>
    where + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update username

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret from a captcha key

    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>>
    where + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update a user’s secret

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    create new captcha

    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>>
    where + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha config

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get all captchas belonging to user

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    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>>
    where + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -532,10 +534,10 @@ trait.

    Self: 'async_trait,

    update captcha key; doesn’t change metadata

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -543,53 +545,53 @@ trait.

    Self: 'async_trait,

    Add levels to captcha

    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>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    check if captcha exists

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete all levels of a captcha

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete captcha

    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>, DBError>> + Send + 'async_trait>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha levels

    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>>
    where + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get captcha’s cooldown period

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -597,187 +599,187 @@ trait.

    Self: 'async_trait,

    Add traffic configuration

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get traffic configuration

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all easy captcha configurations on instance

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete traffic configuration

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    create new notification

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get all unread notifications

    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>>
    where + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    mark a notification read

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig fetches

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig solves

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig confirms

    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>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig fetches

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig solves

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig confirms

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    record PoW timing

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    fetch PoW analytics

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get psuedo ID from campaign ID

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get campaign ID from psuedo ID

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Delete all records for campaign

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all psuedo IDs

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Track maximum nonce received against captcha levels

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get number of analytics entries that are under a certain duration

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    Provided Methods§

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID

    -

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file +

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/trait.Migrate.html b/db_sqlx_maria/dev/prelude/dev/trait.Migrate.html index 8a1b99a6..5bb8f6c9 100644 --- a/db_sqlx_maria/dev/prelude/dev/trait.Migrate.html +++ b/db_sqlx_maria/dev/prelude/dev/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_maria::dev::prelude::dev - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_maria::dev::prelude::dev - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/type.BoxDynError.html b/db_sqlx_maria/dev/prelude/dev/type.BoxDynError.html index 81eb7f81..363fb928 100644 --- a/db_sqlx_maria/dev/prelude/dev/type.BoxDynError.html +++ b/db_sqlx_maria/dev/prelude/dev/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_maria::dev::prelude::dev - Rust -
    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_maria::dev::prelude::dev - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/dev/type.DBResult.html b/db_sqlx_maria/dev/prelude/dev/type.DBResult.html index 117ffca4..adf13742 100644 --- a/db_sqlx_maria/dev/prelude/dev/type.DBResult.html +++ b/db_sqlx_maria/dev/prelude/dev/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_maria::dev::prelude::dev - Rust -

    Type Alias db_sqlx_maria::dev::prelude::dev::DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_maria::dev::prelude::dev - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/enum.DBError.html b/db_sqlx_maria/dev/prelude/enum.DBError.html index 0fe487fa..85a93145 100644 --- a/db_sqlx_maria/dev/prelude/enum.DBError.html +++ b/db_sqlx_maria/dev/prelude/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_maria::dev::prelude - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_maria::dev::prelude - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/enum.Login.html b/db_sqlx_maria/dev/prelude/enum.Login.html index 8c192503..8e3a8e9c 100644 --- a/db_sqlx_maria/dev/prelude/enum.Login.html +++ b/db_sqlx_maria/dev/prelude/enum.Login.html @@ -1,36 +1,43 @@ -Login in db_sqlx_maria::dev::prelude - Rust -
    pub enum Login<'a> {
    -    Username(&'a str),
    -    Email(&'a str),
    +Login in db_sqlx_maria::dev::prelude - Rust

    Enum Login

    pub enum Login<'a> {
    +    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§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( +

    Variants§

    §

    Username(&'a str)

    username as login

    +
    §

    Email(&'a str)

    email as login

    +

    Trait Implementations§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Login<'a>

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/index.html b/db_sqlx_maria/dev/prelude/index.html index e8bd23f6..14ccf5d3 100644 --- a/db_sqlx_maria/dev/prelude/index.html +++ b/db_sqlx_maria/dev/prelude/index.html @@ -1,4 +1,3 @@ -db_sqlx_maria::dev::prelude - Rust -

    Module db_sqlx_maria::dev::prelude

    Expand description

    useful imports for users working with a supported database

    -

    Modules§

    • useful imports for supporting a new database

    Structs§

    Enums§

    • Error data structure grouping various error subtypes
    • types of credentials used as identifiers during login

    Traits§

    • Trait to clone MCDatabase
    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • mCaptcha’s database requirements. To implement support for $Database, kindly implement this -trait.
    • database migrations

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure
    \ No newline at end of file +db_sqlx_maria::dev::prelude - Rust

    Module prelude

    Expand description

    useful imports for users working with a supported database

    +

    Modules§

    dev
    useful imports for supporting a new database

    Structs§

    AddNotification
    Data required to add notification
    Captcha
    Data representing a captcha
    CreateCaptcha
    data required to create new captcha
    CreatePerformanceAnalytics
    Log Proof-of-Work CAPTCHA performance analytics
    EasyCaptcha
    Represents Easy captcha configuration
    Level
    Level struct that describes threshold-difficulty factor mapping
    NameHash
    type encapsulating username and hashed password of a user
    Notification
    Represents notification
    PerformanceAnalytics
    Proof-of-Work CAPTCHA performance analytics
    Register
    Data required to register a new user
    Secret
    datastructure representing a user’s secret
    StatsUnixTimestamp
    Captcha statistics with time recorded in UNIX epoch formats
    TrafficPattern
    User’s traffic pattern; used in generating a captcha configuration
    UpdateEmail
    data required to update them email of a user

    Enums§

    DBError
    Error data structure grouping various error subtypes
    Login
    types of credentials used as identifiers during login

    Traits§

    CloneSPDatabase
    Trait to clone MCDatabase
    Connect
    Create database connection
    DBOps
    Database operations trait(migrations, pool creation and fetching connection from pool)
    GetConnection
    Get database connection
    MCDatabase
    mCaptcha’s database requirements. To implement support for $Database, kindly implement this +trait.
    Migrate
    database migrations

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    Generic result data structure
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.AddNotification.html b/db_sqlx_maria/dev/prelude/struct.AddNotification.html index 623e2c70..8edec838 100644 --- a/db_sqlx_maria/dev/prelude/struct.AddNotification.html +++ b/db_sqlx_maria/dev/prelude/struct.AddNotification.html @@ -1,40 +1,47 @@ -AddNotification in db_sqlx_maria::dev::prelude - Rust -
    pub struct AddNotification<'a> {
    -    pub to: &'a str,
    -    pub from: &'a str,
    -    pub heading: &'a str,
    -    pub message: &'a str,
    +AddNotification in db_sqlx_maria::dev::prelude - Rust

    Struct AddNotification

    pub struct AddNotification<'a> {
    +    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

    message of the notification

    -

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

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

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( +

    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

    message of the notification

    +

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

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

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AddNotification<'a>

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.Captcha.html b/db_sqlx_maria/dev/prelude/struct.Captcha.html index c2e9ee84..7f0ed45d 100644 --- a/db_sqlx_maria/dev/prelude/struct.Captcha.html +++ b/db_sqlx_maria/dev/prelude/struct.Captcha.html @@ -1,39 +1,46 @@ -Captcha in db_sqlx_maria::dev::prelude - Rust -
    pub struct Captcha {
    -    pub config_id: i32,
    -    pub duration: i32,
    -    pub description: String,
    -    pub key: String,
    +Captcha in db_sqlx_maria::dev::prelude - Rust

    Struct Captcha

    pub struct Captcha {
    +    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.CreateCaptcha.html b/db_sqlx_maria/dev/prelude/struct.CreateCaptcha.html index 5793dc52..21442e6c 100644 --- a/db_sqlx_maria/dev/prelude/struct.CreateCaptcha.html +++ b/db_sqlx_maria/dev/prelude/struct.CreateCaptcha.html @@ -1,38 +1,45 @@ -CreateCaptcha in db_sqlx_maria::dev::prelude - Rust -
    pub struct CreateCaptcha<'a> {
    -    pub duration: i32,
    -    pub description: &'a str,
    -    pub key: &'a str,
    +CreateCaptcha in db_sqlx_maria::dev::prelude - Rust

    Struct CreateCaptcha

    pub struct CreateCaptcha<'a> {
    +    pub duration: i32,
    +    pub description: &'a str,
    +    pub key: &'a str,
     }
    Expand description

    data required 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§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

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

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( +

    Fields§

    §duration: i32

    cool down duration

    +
    §description: &'a str

    description of the captcha

    +
    §key: &'a str

    secret key of the captcha

    +

    Trait Implementations§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

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

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CreateCaptcha<'a>

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.CreatePerformanceAnalytics.html b/db_sqlx_maria/dev/prelude/struct.CreatePerformanceAnalytics.html index 49f703ec..f4e5e471 100644 --- a/db_sqlx_maria/dev/prelude/struct.CreatePerformanceAnalytics.html +++ b/db_sqlx_maria/dev/prelude/struct.CreatePerformanceAnalytics.html @@ -1,37 +1,44 @@ -CreatePerformanceAnalytics in db_sqlx_maria::dev::prelude - Rust -
    pub struct CreatePerformanceAnalytics {
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +CreatePerformanceAnalytics in db_sqlx_maria::dev::prelude - Rust

    Struct CreatePerformanceAnalytics

    pub struct CreatePerformanceAnalytics {
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Log Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.EasyCaptcha.html b/db_sqlx_maria/dev/prelude/struct.EasyCaptcha.html index ab48208b..88e6b7e8 100644 --- a/db_sqlx_maria/dev/prelude/struct.EasyCaptcha.html +++ b/db_sqlx_maria/dev/prelude/struct.EasyCaptcha.html @@ -1,39 +1,46 @@ -EasyCaptcha in db_sqlx_maria::dev::prelude - Rust -
    pub struct EasyCaptcha {
    +EasyCaptcha in db_sqlx_maria::dev::prelude - Rust

    Struct EasyCaptcha

    pub struct EasyCaptcha {
         pub traffic_pattern: TrafficPattern,
    -    pub key: String,
    -    pub description: String,
    -    pub username: String,
    +    pub key: String,
    +    pub description: String,
    +    pub username: String,
     }
    Expand description

    Represents Easy captcha configuration

    Fields§

    §traffic_pattern: TrafficPattern

    traffic pattern of easy captcha

    -
    §key: String

    captcha key/sitekey

    -
    §description: String

    captcha description

    -
    §username: String

    Owner of the captcha configuration

    -

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( +

    §key: String

    captcha key/sitekey

    +
    §description: String

    captcha description

    +
    §username: String

    Owner of the captcha configuration

    +

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.Level.html b/db_sqlx_maria/dev/prelude/struct.Level.html index 3f791bbb..67ba4192 100644 --- a/db_sqlx_maria/dev/prelude/struct.Level.html +++ b/db_sqlx_maria/dev/prelude/struct.Level.html @@ -1,33 +1,40 @@ -Level in db_sqlx_maria::dev::prelude - Rust -
    pub struct Level {
    -    pub visitor_threshold: u32,
    -    pub difficulty_factor: u32,
    +Level in db_sqlx_maria::dev::prelude - Rust

    Struct Level

    pub struct Level {
    +    pub visitor_threshold: u32,
    +    pub difficulty_factor: u32,
     }
    Expand description

    Level struct that describes threshold-difficulty factor mapping

    -

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( +

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl Freeze for Level

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.NameHash.html b/db_sqlx_maria/dev/prelude/struct.NameHash.html index 27499946..0bc8a941 100644 --- a/db_sqlx_maria/dev/prelude/struct.NameHash.html +++ b/db_sqlx_maria/dev/prelude/struct.NameHash.html @@ -1,35 +1,42 @@ -NameHash in db_sqlx_maria::dev::prelude - Rust -
    pub struct NameHash {
    -    pub username: String,
    -    pub hash: String,
    +NameHash in db_sqlx_maria::dev::prelude - Rust

    Struct NameHash

    pub struct NameHash {
    +    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§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( +

    Fields§

    §username: String

    username

    +
    §hash: String

    hashed password

    +

    Trait Implementations§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.Notification.html b/db_sqlx_maria/dev/prelude/struct.Notification.html index b51b9fe8..acebc1de 100644 --- a/db_sqlx_maria/dev/prelude/struct.Notification.html +++ b/db_sqlx_maria/dev/prelude/struct.Notification.html @@ -1,41 +1,48 @@ -Notification in db_sqlx_maria::dev::prelude - Rust -
    pub struct Notification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<i64>,
    -    pub id: Option<i32>,
    +Notification in db_sqlx_maria::dev::prelude - Rust

    Struct Notification

    pub struct Notification {
    +    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.PerformanceAnalytics.html b/db_sqlx_maria/dev/prelude/struct.PerformanceAnalytics.html index 7395b518..450725ef 100644 --- a/db_sqlx_maria/dev/prelude/struct.PerformanceAnalytics.html +++ b/db_sqlx_maria/dev/prelude/struct.PerformanceAnalytics.html @@ -1,39 +1,46 @@ -PerformanceAnalytics in db_sqlx_maria::dev::prelude - Rust -
    pub struct PerformanceAnalytics {
    -    pub id: usize,
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +PerformanceAnalytics in db_sqlx_maria::dev::prelude - Rust

    Struct PerformanceAnalytics

    pub struct PerformanceAnalytics {
    +    pub id: usize,
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §id: usize

    log ID

    -
    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §id: usize

    log ID

    +
    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.Register.html b/db_sqlx_maria/dev/prelude/struct.Register.html index 861fd84f..c476ad0f 100644 --- a/db_sqlx_maria/dev/prelude/struct.Register.html +++ b/db_sqlx_maria/dev/prelude/struct.Register.html @@ -1,40 +1,47 @@ -Register in db_sqlx_maria::dev::prelude - Rust -
    pub struct Register<'a> {
    -    pub username: &'a str,
    -    pub secret: &'a str,
    -    pub hash: &'a str,
    -    pub email: Option<&'a str>,
    +Register in db_sqlx_maria::dev::prelude - Rust

    Struct Register

    pub struct Register<'a> {
    +    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( +

    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Register<'a>

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.Secret.html b/db_sqlx_maria/dev/prelude/struct.Secret.html index 29e63504..b3f37370 100644 --- a/db_sqlx_maria/dev/prelude/struct.Secret.html +++ b/db_sqlx_maria/dev/prelude/struct.Secret.html @@ -1,33 +1,40 @@ -Secret in db_sqlx_maria::dev::prelude - Rust -
    pub struct Secret {
    -    pub secret: String,
    +Secret in db_sqlx_maria::dev::prelude - Rust

    Struct Secret

    pub struct Secret {
    +    pub secret: String,
     }
    Expand description

    datastructure representing a user’s secret

    -

    Fields§

    §secret: String

    user’s secret

    -

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( +

    Fields§

    §secret: String

    user’s secret

    +

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    §

    impl Freeze for Secret

    §

    impl RefUnwindSafe for Secret

    §

    impl Send for Secret

    §

    impl Sync for Secret

    §

    impl Unpin for Secret

    §

    impl UnwindSafe for Secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.StatsUnixTimestamp.html b/db_sqlx_maria/dev/prelude/struct.StatsUnixTimestamp.html index ad100e3c..0a38473e 100644 --- a/db_sqlx_maria/dev/prelude/struct.StatsUnixTimestamp.html +++ b/db_sqlx_maria/dev/prelude/struct.StatsUnixTimestamp.html @@ -1,37 +1,44 @@ -StatsUnixTimestamp in db_sqlx_maria::dev::prelude - Rust -
    pub struct StatsUnixTimestamp {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    +StatsUnixTimestamp in db_sqlx_maria::dev::prelude - Rust

    Struct StatsUnixTimestamp

    pub struct StatsUnixTimestamp {
    +    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.TrafficPattern.html b/db_sqlx_maria/dev/prelude/struct.TrafficPattern.html index 5d23c147..b15592eb 100644 --- a/db_sqlx_maria/dev/prelude/struct.TrafficPattern.html +++ b/db_sqlx_maria/dev/prelude/struct.TrafficPattern.html @@ -1,37 +1,44 @@ -TrafficPattern in db_sqlx_maria::dev::prelude - Rust -
    pub struct TrafficPattern {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    +TrafficPattern in db_sqlx_maria::dev::prelude - Rust

    Struct TrafficPattern

    pub struct TrafficPattern {
    +    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>

    traffic that bought the user’s website down; optional

    -

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( +

    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>

    traffic that bought the user’s website down; optional

    +

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/struct.UpdateEmail.html b/db_sqlx_maria/dev/prelude/struct.UpdateEmail.html index 940ffbb5..79010094 100644 --- a/db_sqlx_maria/dev/prelude/struct.UpdateEmail.html +++ b/db_sqlx_maria/dev/prelude/struct.UpdateEmail.html @@ -1,36 +1,43 @@ -UpdateEmail in db_sqlx_maria::dev::prelude - Rust -
    pub struct UpdateEmail<'a> {
    -    pub username: &'a str,
    -    pub new_email: &'a str,
    +UpdateEmail in db_sqlx_maria::dev::prelude - Rust

    Struct UpdateEmail

    pub struct UpdateEmail<'a> {
    +    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§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( +

    Fields§

    §username: &'a str

    username of the user

    +
    §new_email: &'a str

    new email address of the user

    +

    Trait Implementations§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for UpdateEmail<'a>

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/trait.CloneSPDatabase.html b/db_sqlx_maria/dev/prelude/trait.CloneSPDatabase.html index a09612d9..0aa37722 100644 --- a/db_sqlx_maria/dev/prelude/trait.CloneSPDatabase.html +++ b/db_sqlx_maria/dev/prelude/trait.CloneSPDatabase.html @@ -1,8 +1,7 @@ -CloneSPDatabase in db_sqlx_maria::dev::prelude - Rust -
    pub trait CloneSPDatabase {
    +CloneSPDatabase in db_sqlx_maria::dev::prelude - Rust

    Trait CloneSPDatabase

    pub trait CloneSPDatabase {
         // Required method
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +    fn clone_db(&self) -> Box<dyn MCDatabase>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    +

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    Implementors§

    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    \ No newline at end of file + T: MCDatabase + Clone + 'static,
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/trait.Connect.html b/db_sqlx_maria/dev/prelude/trait.Connect.html index 3ebfb6ee..53010ce5 100644 --- a/db_sqlx_maria/dev/prelude/trait.Connect.html +++ b/db_sqlx_maria/dev/prelude/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_maria::dev::prelude - Rust -
    pub trait Connect {
    +Connect in db_sqlx_maria::dev::prelude - Rust

    Trait Connect

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

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/trait.DBOps.html b/db_sqlx_maria/dev/prelude/trait.DBOps.html index 3d1e9e38..a54e9c62 100644 --- a/db_sqlx_maria/dev/prelude/trait.DBOps.html +++ b/db_sqlx_maria/dev/prelude/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_maria::dev::prelude - Rust -
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    +DBOps in db_sqlx_maria::dev::prelude - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/trait.GetConnection.html b/db_sqlx_maria/dev/prelude/trait.GetConnection.html index 3e8a8041..76e99757 100644 --- a/db_sqlx_maria/dev/prelude/trait.GetConnection.html +++ b/db_sqlx_maria/dev/prelude/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_maria::dev::prelude - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_maria::dev::prelude - Rust

    Trait GetConnection

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

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_maria/dev/prelude/trait.MCDatabase.html b/db_sqlx_maria/dev/prelude/trait.MCDatabase.html index e364c46b..c0ffcdf7 100644 --- a/db_sqlx_maria/dev/prelude/trait.MCDatabase.html +++ b/db_sqlx_maria/dev/prelude/trait.MCDatabase.html @@ -1,139 +1,141 @@ -MCDatabase in db_sqlx_maria::dev::prelude - Rust -
    pub trait MCDatabase: Send + Sync + CloneSPDatabase {
    +MCDatabase in db_sqlx_maria::dev::prelude - Rust

    Trait MCDatabase

    pub trait MCDatabase:
    +    Send
    +    + Sync
    +    + CloneSPDatabase {
     
    Show 49 methods // Required methods fn ping<'life0, 'async_trait>( - &'life0 self - ) -> Pin<Box<dyn Future<Output = bool> + Send + '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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 Register<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<Option<String>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + email: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 UpdateEmail<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<NameHash, DBError>> + Send + 'async_trait>> + l: &'life1 Login<'_>, + ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 NameHash, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + current: &'life1 str, + new: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Secret, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + secret: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Captcha, DBError>> + Send + 'async_trait>> + username: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + 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 = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -141,10 +143,10 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -152,53 +154,53 @@ 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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Level>, DBError>> + Send + 'async_trait>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + 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 = Result<i32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -206,325 +208,325 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> where 'life0: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 AddNotification<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Notification>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + id: i32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + psuedo_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> + page: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 - ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 - ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> + duration: u32, + ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 - ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> + duration: u32, + location: u32, + ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; // Provided method fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait { ... }
    }
    Expand description

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

    Required Methods§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    ping DB

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    register a new user

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    delete a user

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if username exists

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get user email

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if email exists

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update a user’s email

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s password

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update user’s password

    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>>
    where + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update username

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret from a captcha key

    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>>
    where + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update a user’s secret

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    create new captcha

    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>>
    where + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha config

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get all captchas belonging to user

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    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>>
    where + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -532,10 +534,10 @@ trait.

    Self: 'async_trait,

    update captcha key; doesn’t change metadata

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -543,53 +545,53 @@ trait.

    Self: 'async_trait,

    Add levels to captcha

    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>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    check if captcha exists

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete all levels of a captcha

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete captcha

    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>, DBError>> + Send + 'async_trait>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha levels

    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>>
    where + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get captcha’s cooldown period

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -597,187 +599,187 @@ trait.

    Self: 'async_trait,

    Add traffic configuration

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get traffic configuration

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all easy captcha configurations on instance

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete traffic configuration

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    create new notification

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get all unread notifications

    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>>
    where + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    mark a notification read

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig fetches

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig solves

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig confirms

    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>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig fetches

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig solves

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig confirms

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    record PoW timing

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    fetch PoW analytics

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get psuedo ID from campaign ID

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get campaign ID from psuedo ID

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Delete all records for campaign

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all psuedo IDs

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Track maximum nonce received against captcha levels

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get number of analytics entries that are under a certain duration

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    Provided Methods§

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID

    -

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file +

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/trait.Migrate.html b/db_sqlx_maria/dev/prelude/trait.Migrate.html index 6b08d541..4176fbe9 100644 --- a/db_sqlx_maria/dev/prelude/trait.Migrate.html +++ b/db_sqlx_maria/dev/prelude/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_maria::dev::prelude - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_maria::dev::prelude - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/type.BoxDynError.html b/db_sqlx_maria/dev/prelude/type.BoxDynError.html index e4220d0b..96e6a79e 100644 --- a/db_sqlx_maria/dev/prelude/type.BoxDynError.html +++ b/db_sqlx_maria/dev/prelude/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_maria::dev::prelude - Rust -
    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_maria::dev::prelude - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/prelude/type.DBResult.html b/db_sqlx_maria/dev/prelude/type.DBResult.html index 49372eab..acdff1ba 100644 --- a/db_sqlx_maria/dev/prelude/type.DBResult.html +++ b/db_sqlx_maria/dev/prelude/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_maria::dev::prelude - Rust -

    Type Alias db_sqlx_maria::dev::prelude::DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_maria::dev::prelude - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.AddNotification.html b/db_sqlx_maria/dev/struct.AddNotification.html index daea990b..4517c509 100644 --- a/db_sqlx_maria/dev/struct.AddNotification.html +++ b/db_sqlx_maria/dev/struct.AddNotification.html @@ -1,40 +1,47 @@ -AddNotification in db_sqlx_maria::dev - Rust -
    pub struct AddNotification<'a> {
    -    pub to: &'a str,
    -    pub from: &'a str,
    -    pub heading: &'a str,
    -    pub message: &'a str,
    +AddNotification in db_sqlx_maria::dev - Rust

    Struct AddNotification

    pub struct AddNotification<'a> {
    +    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

    message of the notification

    -

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

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

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( +

    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

    message of the notification

    +

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

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

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AddNotification<'a>

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.Captcha.html b/db_sqlx_maria/dev/struct.Captcha.html index f50af991..bbff1e8a 100644 --- a/db_sqlx_maria/dev/struct.Captcha.html +++ b/db_sqlx_maria/dev/struct.Captcha.html @@ -1,39 +1,46 @@ -Captcha in db_sqlx_maria::dev - Rust -

    Struct db_sqlx_maria::dev::Captcha

    pub struct Captcha {
    -    pub config_id: i32,
    -    pub duration: i32,
    -    pub description: String,
    -    pub key: String,
    +Captcha in db_sqlx_maria::dev - Rust

    Struct Captcha

    pub struct Captcha {
    +    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

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

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.CreateCaptcha.html b/db_sqlx_maria/dev/struct.CreateCaptcha.html index b96cd408..aa40f7e8 100644 --- a/db_sqlx_maria/dev/struct.CreateCaptcha.html +++ b/db_sqlx_maria/dev/struct.CreateCaptcha.html @@ -1,38 +1,45 @@ -CreateCaptcha in db_sqlx_maria::dev - Rust -
    pub struct CreateCaptcha<'a> {
    -    pub duration: i32,
    -    pub description: &'a str,
    -    pub key: &'a str,
    +CreateCaptcha in db_sqlx_maria::dev - Rust

    Struct CreateCaptcha

    pub struct CreateCaptcha<'a> {
    +    pub duration: i32,
    +    pub description: &'a str,
    +    pub key: &'a str,
     }
    Expand description

    data required 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§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

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

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( +

    Fields§

    §duration: i32

    cool down duration

    +
    §description: &'a str

    description of the captcha

    +
    §key: &'a str

    secret key of the captcha

    +

    Trait Implementations§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

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

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CreateCaptcha<'a>

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.CreatePerformanceAnalytics.html b/db_sqlx_maria/dev/struct.CreatePerformanceAnalytics.html index 1b59fc41..4f403dc0 100644 --- a/db_sqlx_maria/dev/struct.CreatePerformanceAnalytics.html +++ b/db_sqlx_maria/dev/struct.CreatePerformanceAnalytics.html @@ -1,37 +1,44 @@ -CreatePerformanceAnalytics in db_sqlx_maria::dev - Rust -
    pub struct CreatePerformanceAnalytics {
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +CreatePerformanceAnalytics in db_sqlx_maria::dev - Rust

    Struct CreatePerformanceAnalytics

    pub struct CreatePerformanceAnalytics {
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Log Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

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

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.EasyCaptcha.html b/db_sqlx_maria/dev/struct.EasyCaptcha.html index 770a154f..0686851b 100644 --- a/db_sqlx_maria/dev/struct.EasyCaptcha.html +++ b/db_sqlx_maria/dev/struct.EasyCaptcha.html @@ -1,39 +1,46 @@ -EasyCaptcha in db_sqlx_maria::dev - Rust -
    pub struct EasyCaptcha {
    +EasyCaptcha in db_sqlx_maria::dev - Rust

    Struct EasyCaptcha

    pub struct EasyCaptcha {
         pub traffic_pattern: TrafficPattern,
    -    pub key: String,
    -    pub description: String,
    -    pub username: String,
    +    pub key: String,
    +    pub description: String,
    +    pub username: String,
     }
    Expand description

    Represents Easy captcha configuration

    Fields§

    §traffic_pattern: TrafficPattern

    traffic pattern of easy captcha

    -
    §key: String

    captcha key/sitekey

    -
    §description: String

    captcha description

    -
    §username: String

    Owner of the captcha configuration

    -

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( +

    §key: String

    captcha key/sitekey

    +
    §description: String

    captcha description

    +
    §username: String

    Owner of the captcha configuration

    +

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

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

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.Level.html b/db_sqlx_maria/dev/struct.Level.html index 9a438616..1a2d556e 100644 --- a/db_sqlx_maria/dev/struct.Level.html +++ b/db_sqlx_maria/dev/struct.Level.html @@ -1,33 +1,40 @@ -Level in db_sqlx_maria::dev - Rust -

    Struct db_sqlx_maria::dev::Level

    pub struct Level {
    -    pub visitor_threshold: u32,
    -    pub difficulty_factor: u32,
    +Level in db_sqlx_maria::dev - Rust

    Struct Level

    pub struct Level {
    +    pub visitor_threshold: u32,
    +    pub difficulty_factor: u32,
     }
    Expand description

    Level struct that describes threshold-difficulty factor mapping

    -

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( +

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl Freeze for Level

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.NameHash.html b/db_sqlx_maria/dev/struct.NameHash.html index dfaf8085..e2a93161 100644 --- a/db_sqlx_maria/dev/struct.NameHash.html +++ b/db_sqlx_maria/dev/struct.NameHash.html @@ -1,35 +1,42 @@ -NameHash in db_sqlx_maria::dev - Rust -

    Struct db_sqlx_maria::dev::NameHash

    pub struct NameHash {
    -    pub username: String,
    -    pub hash: String,
    +NameHash in db_sqlx_maria::dev - Rust

    Struct NameHash

    pub struct NameHash {
    +    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§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( +

    Fields§

    §username: String

    username

    +
    §hash: String

    hashed password

    +

    Trait Implementations§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.Notification.html b/db_sqlx_maria/dev/struct.Notification.html index 5b0d1fdd..bf929328 100644 --- a/db_sqlx_maria/dev/struct.Notification.html +++ b/db_sqlx_maria/dev/struct.Notification.html @@ -1,41 +1,48 @@ -Notification in db_sqlx_maria::dev - Rust -
    pub struct Notification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<i64>,
    -    pub id: Option<i32>,
    +Notification in db_sqlx_maria::dev - Rust

    Struct Notification

    pub struct Notification {
    +    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

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

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.PerformanceAnalytics.html b/db_sqlx_maria/dev/struct.PerformanceAnalytics.html index 9d982a15..dea804d2 100644 --- a/db_sqlx_maria/dev/struct.PerformanceAnalytics.html +++ b/db_sqlx_maria/dev/struct.PerformanceAnalytics.html @@ -1,39 +1,46 @@ -PerformanceAnalytics in db_sqlx_maria::dev - Rust -
    pub struct PerformanceAnalytics {
    -    pub id: usize,
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +PerformanceAnalytics in db_sqlx_maria::dev - Rust

    Struct PerformanceAnalytics

    pub struct PerformanceAnalytics {
    +    pub id: usize,
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §id: usize

    log ID

    -
    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §id: usize

    log ID

    +
    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

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

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.Register.html b/db_sqlx_maria/dev/struct.Register.html index 7426e728..b0ab4a50 100644 --- a/db_sqlx_maria/dev/struct.Register.html +++ b/db_sqlx_maria/dev/struct.Register.html @@ -1,40 +1,47 @@ -Register in db_sqlx_maria::dev - Rust -

    Struct db_sqlx_maria::dev::Register

    pub struct Register<'a> {
    -    pub username: &'a str,
    -    pub secret: &'a str,
    -    pub hash: &'a str,
    -    pub email: Option<&'a str>,
    +Register in db_sqlx_maria::dev - Rust

    Struct Register

    pub struct Register<'a> {
    +    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( +

    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Register<'a>

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.Secret.html b/db_sqlx_maria/dev/struct.Secret.html index d57d5b7d..d8f423a9 100644 --- a/db_sqlx_maria/dev/struct.Secret.html +++ b/db_sqlx_maria/dev/struct.Secret.html @@ -1,33 +1,40 @@ -Secret in db_sqlx_maria::dev - Rust -

    Struct db_sqlx_maria::dev::Secret

    pub struct Secret {
    -    pub secret: String,
    +Secret in db_sqlx_maria::dev - Rust

    Struct Secret

    pub struct Secret {
    +    pub secret: String,
     }
    Expand description

    datastructure representing a user’s secret

    -

    Fields§

    §secret: String

    user’s secret

    -

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( +

    Fields§

    §secret: String

    user’s secret

    +

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

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

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    §

    impl Freeze for Secret

    §

    impl RefUnwindSafe for Secret

    §

    impl Send for Secret

    §

    impl Sync for Secret

    §

    impl Unpin for Secret

    §

    impl UnwindSafe for Secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.StatsUnixTimestamp.html b/db_sqlx_maria/dev/struct.StatsUnixTimestamp.html index 77e4980a..e111964a 100644 --- a/db_sqlx_maria/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_maria/dev/struct.StatsUnixTimestamp.html @@ -1,37 +1,44 @@ -StatsUnixTimestamp in db_sqlx_maria::dev - Rust -
    pub struct StatsUnixTimestamp {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    +StatsUnixTimestamp in db_sqlx_maria::dev - Rust

    Struct StatsUnixTimestamp

    pub struct StatsUnixTimestamp {
    +    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

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

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.TrafficPattern.html b/db_sqlx_maria/dev/struct.TrafficPattern.html index 50582f19..3f166f3c 100644 --- a/db_sqlx_maria/dev/struct.TrafficPattern.html +++ b/db_sqlx_maria/dev/struct.TrafficPattern.html @@ -1,37 +1,44 @@ -TrafficPattern in db_sqlx_maria::dev - Rust -
    pub struct TrafficPattern {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    +TrafficPattern in db_sqlx_maria::dev - Rust

    Struct TrafficPattern

    pub struct TrafficPattern {
    +    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>

    traffic that bought the user’s website down; optional

    -

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( +

    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>

    traffic that bought the user’s website down; optional

    +

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

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

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/struct.UpdateEmail.html b/db_sqlx_maria/dev/struct.UpdateEmail.html index 23621e7a..555a7687 100644 --- a/db_sqlx_maria/dev/struct.UpdateEmail.html +++ b/db_sqlx_maria/dev/struct.UpdateEmail.html @@ -1,36 +1,43 @@ -UpdateEmail in db_sqlx_maria::dev - Rust -
    pub struct UpdateEmail<'a> {
    -    pub username: &'a str,
    -    pub new_email: &'a str,
    +UpdateEmail in db_sqlx_maria::dev - Rust

    Struct UpdateEmail

    pub struct UpdateEmail<'a> {
    +    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§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( +

    Fields§

    §username: &'a str

    username of the user

    +
    §new_email: &'a str

    new email address of the user

    +

    Trait Implementations§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for UpdateEmail<'a>

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/tests/constant.LEVELS.html b/db_sqlx_maria/dev/tests/constant.LEVELS.html index 1f79818c..f4a9974f 100644 --- a/db_sqlx_maria/dev/tests/constant.LEVELS.html +++ b/db_sqlx_maria/dev/tests/constant.LEVELS.html @@ -1,3 +1,2 @@ -LEVELS in db_sqlx_maria::dev::tests - Rust -

    Constant db_sqlx_maria::dev::tests::LEVELS

    pub const LEVELS: [Level; 3];
    Expand description

    levels for complex captcha config

    +LEVELS in db_sqlx_maria::dev::tests - Rust

    Constant LEVELS

    pub const LEVELS: [Level; 3];
    Expand description

    levels for complex captcha config

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/tests/constant.TRAFFIC_PATTERN.html b/db_sqlx_maria/dev/tests/constant.TRAFFIC_PATTERN.html index 54be81c5..3d2a0701 100644 --- a/db_sqlx_maria/dev/tests/constant.TRAFFIC_PATTERN.html +++ b/db_sqlx_maria/dev/tests/constant.TRAFFIC_PATTERN.html @@ -1,3 +1,2 @@ -TRAFFIC_PATTERN in db_sqlx_maria::dev::tests - Rust -
    pub const TRAFFIC_PATTERN: TrafficPattern;
    Expand description

    easy traffic pattern

    +TRAFFIC_PATTERN in db_sqlx_maria::dev::tests - Rust

    Constant TRAFFIC_PATTERN

    pub const TRAFFIC_PATTERN: TrafficPattern;
    Expand description

    easy traffic pattern

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/tests/fn.database_works.html b/db_sqlx_maria/dev/tests/fn.database_works.html index 2f55e4e1..660002fa 100644 --- a/db_sqlx_maria/dev/tests/fn.database_works.html +++ b/db_sqlx_maria/dev/tests/fn.database_works.html @@ -1,11 +1,10 @@ -database_works in db_sqlx_maria::dev::tests - Rust -
    pub async fn database_works<T, 'a>(
    -    db: &T,
    +database_works in db_sqlx_maria::dev::tests - Rust

    Function database_works

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

    test all database functions

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/tests/index.html b/db_sqlx_maria/dev/tests/index.html index a8f72666..cbf5f836 100644 --- a/db_sqlx_maria/dev/tests/index.html +++ b/db_sqlx_maria/dev/tests/index.html @@ -1,3 +1,2 @@ -db_sqlx_maria::dev::tests - Rust -

    Module db_sqlx_maria::dev::tests

    Expand description

    Test utilities

    -

    Constants§

    Functions§

    \ No newline at end of file +db_sqlx_maria::dev::tests - Rust

    Module tests

    Expand description

    Test utilities

    +

    Constants§

    LEVELS
    levels for complex captcha config
    TRAFFIC_PATTERN
    easy traffic pattern

    Functions§

    database_works
    test all database functions
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/trait.CloneSPDatabase.html b/db_sqlx_maria/dev/trait.CloneSPDatabase.html index 7ee10f37..95e89898 100644 --- a/db_sqlx_maria/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_maria/dev/trait.CloneSPDatabase.html @@ -1,8 +1,7 @@ -CloneSPDatabase in db_sqlx_maria::dev - Rust -
    pub trait CloneSPDatabase {
    +CloneSPDatabase in db_sqlx_maria::dev - Rust

    Trait CloneSPDatabase

    pub trait CloneSPDatabase {
         // Required method
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +    fn clone_db(&self) -> Box<dyn MCDatabase>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    +

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    Implementors§

    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    \ No newline at end of file + T: MCDatabase + Clone + 'static,
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/trait.Connect.html b/db_sqlx_maria/dev/trait.Connect.html index 43056a94..5d0f333b 100644 --- a/db_sqlx_maria/dev/trait.Connect.html +++ b/db_sqlx_maria/dev/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_maria::dev - Rust -
    pub trait Connect {
    +Connect in db_sqlx_maria::dev - Rust

    Trait Connect

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

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/trait.DBOps.html b/db_sqlx_maria/dev/trait.DBOps.html index 633ef68d..0c205567 100644 --- a/db_sqlx_maria/dev/trait.DBOps.html +++ b/db_sqlx_maria/dev/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_maria::dev - Rust -

    Trait db_sqlx_maria::dev::DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    +DBOps in db_sqlx_maria::dev - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

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

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/trait.GetConnection.html b/db_sqlx_maria/dev/trait.GetConnection.html index 6474710e..149985ad 100644 --- a/db_sqlx_maria/dev/trait.GetConnection.html +++ b/db_sqlx_maria/dev/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_maria::dev - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_maria::dev - Rust

    Trait GetConnection

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

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_maria/dev/trait.MCDatabase.html b/db_sqlx_maria/dev/trait.MCDatabase.html index c2d4a473..1eeb3a73 100644 --- a/db_sqlx_maria/dev/trait.MCDatabase.html +++ b/db_sqlx_maria/dev/trait.MCDatabase.html @@ -1,139 +1,141 @@ -MCDatabase in db_sqlx_maria::dev - Rust -
    pub trait MCDatabase: Send + Sync + CloneSPDatabase {
    +MCDatabase in db_sqlx_maria::dev - Rust

    Trait MCDatabase

    pub trait MCDatabase:
    +    Send
    +    + Sync
    +    + CloneSPDatabase {
     
    Show 49 methods // Required methods fn ping<'life0, 'async_trait>( - &'life0 self - ) -> Pin<Box<dyn Future<Output = bool> + Send + '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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 Register<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<Option<String>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + email: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 UpdateEmail<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<NameHash, DBError>> + Send + 'async_trait>> + l: &'life1 Login<'_>, + ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 NameHash, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + current: &'life1 str, + new: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Secret, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + secret: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Captcha, DBError>> + Send + 'async_trait>> + username: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + 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 = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -141,10 +143,10 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -152,53 +154,53 @@ 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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Level>, DBError>> + Send + 'async_trait>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + 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 = Result<i32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -206,325 +208,325 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> where 'life0: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 AddNotification<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Notification>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + id: i32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + psuedo_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> + page: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 - ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 - ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> + duration: u32, + ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 - ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> + duration: u32, + location: u32, + ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; // Provided method fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait { ... }
    }
    Expand description

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

    Required Methods§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    ping DB

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    register a new user

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    delete a user

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if username exists

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get user email

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if email exists

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update a user’s email

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s password

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update user’s password

    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>>
    where + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update username

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret from a captcha key

    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>>
    where + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update a user’s secret

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    create new captcha

    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>>
    where + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha config

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get all captchas belonging to user

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    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>>
    where + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -532,10 +534,10 @@ trait.

    Self: 'async_trait,

    update captcha key; doesn’t change metadata

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -543,53 +545,53 @@ trait.

    Self: 'async_trait,

    Add levels to captcha

    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>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    check if captcha exists

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete all levels of a captcha

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete captcha

    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>, DBError>> + Send + 'async_trait>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha levels

    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>>
    where + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get captcha’s cooldown period

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -597,187 +599,187 @@ trait.

    Self: 'async_trait,

    Add traffic configuration

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get traffic configuration

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all easy captcha configurations on instance

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete traffic configuration

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    create new notification

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get all unread notifications

    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>>
    where + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    mark a notification read

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig fetches

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig solves

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig confirms

    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>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig fetches

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig solves

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig confirms

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    record PoW timing

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    fetch PoW analytics

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get psuedo ID from campaign ID

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get campaign ID from psuedo ID

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Delete all records for campaign

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all psuedo IDs

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Track maximum nonce received against captcha levels

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get number of analytics entries that are under a certain duration

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    Provided Methods§

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID

    -

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file +

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/trait.Migrate.html b/db_sqlx_maria/dev/trait.Migrate.html index 74c5723f..e80bc6a4 100644 --- a/db_sqlx_maria/dev/trait.Migrate.html +++ b/db_sqlx_maria/dev/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_maria::dev - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_maria::dev - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/db_sqlx_maria/dev/type.BoxDynError.html b/db_sqlx_maria/dev/type.BoxDynError.html index a40b38d3..6fd1971b 100644 --- a/db_sqlx_maria/dev/type.BoxDynError.html +++ b/db_sqlx_maria/dev/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_maria::dev - Rust -

    Type Alias db_sqlx_maria::dev::BoxDynError

    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_maria::dev - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ No newline at end of file diff --git a/db_sqlx_maria/dev/type.DBResult.html b/db_sqlx_maria/dev/type.DBResult.html index 443e7bff..7ddb84cb 100644 --- a/db_sqlx_maria/dev/type.DBResult.html +++ b/db_sqlx_maria/dev/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_maria::dev - Rust -

    Type Alias db_sqlx_maria::dev::DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_maria::dev - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/db_sqlx_maria/enum.ConnectionOptions.html b/db_sqlx_maria/enum.ConnectionOptions.html index b07cfbdf..ebb67a22 100644 --- a/db_sqlx_maria/enum.ConnectionOptions.html +++ b/db_sqlx_maria/enum.ConnectionOptions.html @@ -1,28 +1,35 @@ -ConnectionOptions in db_sqlx_maria - Rust -
    pub enum ConnectionOptions {
    +ConnectionOptions in db_sqlx_maria - Rust

    Enum ConnectionOptions

    Source
    pub enum ConnectionOptions {
         Fresh(Fresh),
         Existing(Conn),
     }
    Expand description

    Connect to database

    Variants§

    §

    Fresh(Fresh)

    fresh connection

    §

    Existing(Conn)

    existing connection

    -

    Trait Implementations§

    source§

    impl Connect for ConnectionOptions

    §

    type Pool = Database

    database specific pool-type
    source§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where +

    Trait Implementations§

    Source§

    impl Connect for ConnectionOptions

    Source§

    type Pool = Database

    database specific pool-type
    Source§

    fn connect<'async_trait>( + self, +) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type -create connection pool

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +create connection pool

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/errors/fn.map_register_err.html b/db_sqlx_maria/errors/fn.map_register_err.html index 1d3fe958..74b928cc 100644 --- a/db_sqlx_maria/errors/fn.map_register_err.html +++ b/db_sqlx_maria/errors/fn.map_register_err.html @@ -1,3 +1,2 @@ -map_register_err in db_sqlx_maria::errors - Rust -
    pub fn map_register_err(e: Error) -> DBError
    Expand description

    map postgres errors to DBError types

    +map_register_err in db_sqlx_maria::errors - Rust

    Function map_register_err

    Source
    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_maria/errors/fn.map_row_not_found_err.html b/db_sqlx_maria/errors/fn.map_row_not_found_err.html index ce879aa8..1c2c2fd0 100644 --- a/db_sqlx_maria/errors/fn.map_row_not_found_err.html +++ b/db_sqlx_maria/errors/fn.map_row_not_found_err.html @@ -1,3 +1,2 @@ -map_row_not_found_err in db_sqlx_maria::errors - Rust -
    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

    +map_row_not_found_err in db_sqlx_maria::errors - Rust

    Function map_row_not_found_err

    Source
    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_maria/errors/index.html b/db_sqlx_maria/errors/index.html index 595b30e3..972bf48e 100644 --- a/db_sqlx_maria/errors/index.html +++ b/db_sqlx_maria/errors/index.html @@ -1,3 +1,2 @@ -db_sqlx_maria::errors - Rust -

    Module db_sqlx_maria::errors

    source ·
    Expand description

    Error-handling utilities

    -

    Functions§

    \ No newline at end of file +db_sqlx_maria::errors - Rust

    Module errors

    Source
    Expand description

    Error-handling utilities

    +

    Functions§

    map_register_err
    map postgres errors to DBError types
    map_row_not_found_err
    map custom row not found error to DB error
    \ No newline at end of file diff --git a/db_sqlx_maria/index.html b/db_sqlx_maria/index.html index 75d23f9c..2a1d80e1 100644 --- a/db_sqlx_maria/index.html +++ b/db_sqlx_maria/index.html @@ -1,3 +1 @@ -db_sqlx_maria - Rust -

    Crate db_sqlx_maria

    source ·

    Modules§

    Structs§

    Enums§

    \ No newline at end of file +db_sqlx_maria - Rust

    Crate db_sqlx_maria

    Source

    Modules§

    dev
    errors
    Error-handling utilities
    prelude

    Structs§

    Conn
    Use an existing database pool
    Database
    Fresh
    InnerNotification
    Represents notification

    Enums§

    ConnectionOptions
    Connect to database
    \ No newline at end of file diff --git a/db_sqlx_maria/prelude/index.html b/db_sqlx_maria/prelude/index.html index 4017c212..a88353d6 100644 --- a/db_sqlx_maria/prelude/index.html +++ b/db_sqlx_maria/prelude/index.html @@ -1,2 +1 @@ -db_sqlx_maria::prelude - Rust -

    Module db_sqlx_maria::prelude

    source ·

    Re-exports§

    \ No newline at end of file +db_sqlx_maria::prelude - Rust

    Module prelude

    Source

    Re-exports§

    pub use super::*;
    \ No newline at end of file diff --git a/db_sqlx_maria/struct.Conn.html b/db_sqlx_maria/struct.Conn.html index fea988de..187a5ff0 100644 --- a/db_sqlx_maria/struct.Conn.html +++ b/db_sqlx_maria/struct.Conn.html @@ -1,19 +1,26 @@ -Conn in db_sqlx_maria - Rust -

    Struct db_sqlx_maria::Conn

    source ·
    pub struct Conn(pub MySqlPool);
    Expand description

    Use an existing database pool

    -

    Tuple Fields§

    §0: MySqlPool

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Conn

    §

    impl Send for Conn

    §

    impl Sync for Conn

    §

    impl Unpin for Conn

    §

    impl !UnwindSafe for Conn

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Conn in db_sqlx_maria - Rust

    Struct Conn

    Source
    pub struct Conn(pub MySqlPool);
    Expand description

    Use an existing database pool

    +

    Tuple Fields§

    §0: MySqlPool

    Auto Trait Implementations§

    §

    impl Freeze for Conn

    §

    impl !RefUnwindSafe for Conn

    §

    impl Send for Conn

    §

    impl Sync for Conn

    §

    impl Unpin for Conn

    §

    impl !UnwindSafe for Conn

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/struct.Database.html b/db_sqlx_maria/struct.Database.html index cf17b895..f33e0e4f 100644 --- a/db_sqlx_maria/struct.Database.html +++ b/db_sqlx_maria/struct.Database.html @@ -1,413 +1,421 @@ -Database in db_sqlx_maria - Rust -

    Struct db_sqlx_maria::Database

    source ·
    pub struct Database {
    +Database in db_sqlx_maria - Rust

    Struct Database

    Source
    pub struct Database {
         pub pool: MySqlPool,
    -}

    Fields§

    §pool: MySqlPool

    Trait Implementations§

    source§

    impl Clone for Database

    source§

    fn clone(&self) -> Database

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl MCDatabase for Database

    source§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where +}

    Fields§

    §pool: MySqlPool

    Trait Implementations§

    Source§

    impl Clone for Database

    Source§

    fn clone(&self) -> Database

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl MCDatabase for Database

    Source§

    fn ping<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    ping DB

    -
    source§

    fn register<'life0, 'life1, 'async_trait>( +

    Source§

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    register a new user

    -
    source§

    fn delete_user<'life0, 'life1, 'async_trait>( +

    Source§

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    delete a user

    -
    source§

    fn username_exists<'life0, 'life1, 'async_trait>( +

    Source§

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    check if username exists

    -
    source§

    fn get_email<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get user email

    -
    source§

    fn email_exists<'life0, 'life1, 'async_trait>( +

    Source§

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    check if email exists

    -
    source§

    fn update_email<'life0, 'life1, 'async_trait>( +

    Source§

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    update a user’s email

    -
    source§

    fn get_password<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s password

    -
    source§

    fn update_password<'life0, 'life1, 'async_trait>( +

    Source§

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    update user’s password

    -
    source§

    fn update_username<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update username

    -
    source§

    fn get_secret<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s secret

    -
    source§

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s secret from a captcha key

    -
    source§

    fn update_secret<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update a user’s secret

    -
    source§

    fn create_captcha<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    create new captcha

    -
    source§

    fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get captcha config

    -
    source§

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( +

    Source§

    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 + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get all captchas belonging to user

    -
    source§

    fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    -
    source§

    fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    update captcha key; doesn’t change metadata

    -
    source§

    fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    Add levels to captcha

    -
    source§

    fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    check if captcha exists

    -
    source§

    fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete all levels of a captcha

    -
    source§

    fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete captcha

    -
    source§

    fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get captcha levels

    -
    source§

    fn get_captcha_cooldown<'life0, 'life1, 'async_trait>( +

    Source§

    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 + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get captcha’s cooldown period

    -
    source§

    fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    Add traffic configuration

    -
    source§

    fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get traffic configuration

    -
    source§

    fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete traffic configuration

    -
    source§

    fn create_notification<'life0, 'life1, 'async_trait>( +

    Source§

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    create new notification

    -
    source§

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( +

    Source§

    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 + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get all unread notifications

    -
    source§

    fn mark_notification_read<'life0, 'life1, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    mark a notification read

    -
    source§

    fn record_fetch<'life0, 'life1, 'async_trait>( +

    Source§

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig fetches

    -
    source§

    fn record_solve<'life0, 'life1, 'async_trait>( +

    Source§

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig solves

    -
    source§

    fn record_confirm<'life0, 'life1, 'async_trait>( +

    Source§

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig confirms

    -
    source§

    fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig fetches

    -
    source§

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig solves

    -
    source§

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig confirms

    -
    source§

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoW timing

    -
    source§

    fn analytics_fetch<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    fetch PoW analytics

    -
    source§

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    -
    source§

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get psuedo ID from campaign ID

    -
    source§

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get campaign ID from psuedo ID

    -
    source§

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( +

    Source§

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get all psuedo IDs

    -
    source§

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( +

    Source§

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Track maximum nonce received against captcha levels

    -
    source§

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    -
    source§

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( +

    Source§

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get number of analytics entries that are under a certain duration

    -
    source§

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( +

    Source§

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limited and sorted in ascending order

    -
    source§

    fn get_all_easy_captchas<'life0, 'async_trait>( +

    Source§

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get all easy captcha configurations on instance

    -
    source§

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Delete all records for campaign
    §

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, - Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID
    source§

    impl Migrate for Database

    source§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID
    Source§

    impl Migrate for Database

    Source§

    fn migrate<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    database specific error-type -run migrations

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    §

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +run migrations

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CloneSPDatabase for T
    where + T: MCDatabase + Clone + 'static,

    §

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/struct.Fresh.html b/db_sqlx_maria/struct.Fresh.html index 93e11289..a99f88b3 100644 --- a/db_sqlx_maria/struct.Fresh.html +++ b/db_sqlx_maria/struct.Fresh.html @@ -1,22 +1,29 @@ -Fresh in db_sqlx_maria - Rust -

    Struct db_sqlx_maria::Fresh

    source ·
    pub struct Fresh {
    +Fresh in db_sqlx_maria - Rust

    Struct Fresh

    Source
    pub struct Fresh {
         pub pool_options: MySqlPoolOptions,
    -    pub disable_logging: bool,
    -    pub url: String,
    -}

    Fields§

    §pool_options: MySqlPoolOptions§disable_logging: bool§url: String

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Fresh

    §

    impl Send for Fresh

    §

    impl Sync for Fresh

    §

    impl Unpin for Fresh

    §

    impl !UnwindSafe for Fresh

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + pub disable_logging: bool, + pub url: String, +}

    Fields§

    §pool_options: MySqlPoolOptions§disable_logging: bool§url: String

    Auto Trait Implementations§

    §

    impl Freeze for Fresh

    §

    impl !RefUnwindSafe for Fresh

    §

    impl Send for Fresh

    §

    impl Sync for Fresh

    §

    impl Unpin for Fresh

    §

    impl !UnwindSafe for Fresh

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_maria/struct.InnerNotification.html b/db_sqlx_maria/struct.InnerNotification.html index d51d7022..d8cea025 100644 --- a/db_sqlx_maria/struct.InnerNotification.html +++ b/db_sqlx_maria/struct.InnerNotification.html @@ -1,33 +1,40 @@ -InnerNotification in db_sqlx_maria - Rust -
    pub struct InnerNotification {
    -    pub name: String,
    -    pub heading: String,
    -    pub message: String,
    +InnerNotification in db_sqlx_maria - Rust

    Struct InnerNotification

    Source
    pub struct InnerNotification {
    +    pub name: String,
    +    pub heading: String,
    +    pub message: String,
         pub received: OffsetDateTime,
    -    pub id: i32,
    +    pub id: i32,
     }
    Expand description

    Represents notification

    -

    Fields§

    §name: String

    receiver name of the notification

    -
    §heading: String

    heading of the notification

    -
    §message: String

    message of the notification

    +

    Fields§

    §name: String

    receiver name of the notification

    +
    §heading: String

    heading of the notification

    +
    §message: String

    message of the notification

    §received: OffsetDateTime

    when notification was received

    -
    §id: i32

    db assigned ID of the notification

    -

    Trait Implementations§

    source§

    impl Clone for InnerNotification

    source§

    fn clone(&self) -> InnerNotification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for InnerNotification

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for InnerNotification

    source§

    fn eq(&self, other: &InnerNotification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl StructuralPartialEq for InnerNotification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    §id: i32

    db assigned ID of the notification

    +

    Trait Implementations§

    Source§

    impl Clone for InnerNotification

    Source§

    fn clone(&self) -> InnerNotification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for InnerNotification

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    Source§

    impl PartialEq for InnerNotification

    Source§

    fn eq(&self, other: &InnerNotification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl StructuralPartialEq for InnerNotification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/all.html b/db_sqlx_postgres/all.html index b40d652d..d40a6c71 100644 --- a/db_sqlx_postgres/all.html +++ b/db_sqlx_postgres/all.html @@ -1,2 +1 @@ -List of all items in this crate -

    List of all items

    Structs

    Enums

    Traits

    Attribute Macros

    Functions

    Type Aliases

    Constants

    \ No newline at end of file +List of all items in this crate

    List of all items

    Structs

    Enums

    Traits

    Attribute Macros

    Functions

    Type Aliases

    Constants

    \ 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 82bfd67b..f99cb62a 100644 --- a/db_sqlx_postgres/dev/attr.async_trait.html +++ b/db_sqlx_postgres/dev/attr.async_trait.html @@ -1,2 +1 @@ -async_trait in db_sqlx_postgres::dev - Rust -

    Attribute Macro db_sqlx_postgres::dev::async_trait

    #[async_trait]
    \ No newline at end of file +async_trait in db_sqlx_postgres::dev - Rust

    Attribute Macro async_trait

    Source
    #[async_trait]
    \ 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 310a59a5..28ecede2 100644 --- a/db_sqlx_postgres/dev/enum.DBError.html +++ b/db_sqlx_postgres/dev/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_postgres::dev - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_postgres::dev - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 10a7f6c7..2855a634 100644 --- a/db_sqlx_postgres/dev/enum.Error.html +++ b/db_sqlx_postgres/dev/enum.Error.html @@ -1,64 +1,78 @@ -Error in db_sqlx_postgres::dev - Rust -
    #[non_exhaustive]
    pub enum Error { -
    Show 16 variants Configuration(Box<dyn Error + Send + Sync>), - Database(Box<dyn DatabaseError>), - Io(Error), - Tls(Box<dyn Error + Send + Sync>), - Protocol(String), +Error in db_sqlx_postgres::dev - Rust

    Enum Error

    #[non_exhaustive]
    pub enum Error { +
    Show 20 variants Configuration(Box<dyn Error + Sync + Send>), + InvalidArgument(String), + Database(Box<dyn DatabaseError>), + Io(Error), + Tls(Box<dyn Error + Sync + Send>), + 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>, + index: String, + source: Box<dyn Error + Sync + Send>, }, - Decode(Box<dyn Error + Send + Sync>), - AnyDriverError(Box<dyn Error + Send + Sync>), + Encode(Box<dyn Error + Sync + Send>), + Decode(Box<dyn Error + Sync + Send>), + AnyDriverError(Box<dyn Error + Sync + Send>), PoolTimedOut, PoolClosed, WorkerCrashed, - Migrate(Box<MigrateError>), + Migrate(Box<MigrateError>), + InvalidSavePointStatement, + BeginFailed,
    }
    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>)

    Error occurred while parsing a connection string.

    -
    §

    Database(Box<dyn DatabaseError>)

    Error returned from the database.

    -
    §

    Io(Error)

    Error communicating with the database backend.

    -
    §

    Tls(Box<dyn Error + Send + Sync>)

    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>)

    Error occurred while parsing a connection string.

    +
    §

    InvalidArgument(String)

    One or more of the arguments to the called function was invalid.

    +

    The string contains more information.

    +
    §

    Database(Box<dyn DatabaseError>)

    Error returned from the database.

    +
    §

    Io(Error)

    Error communicating with the database backend.

    +
    §

    Tls(Box<dyn Error + Sync + Send>)

    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>

    Error occurred while decoding a value from a specific column.

    -
    §

    Decode(Box<dyn Error + Send + Sync>)

    Error occurred while decoding a value.

    -
    §

    AnyDriverError(Box<dyn Error + Send + Sync>)

    Error occurred within the Any driver mapping to/from the native driver.

    +
    §

    TypeNotFound

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

    +

    Fields

    §type_name: String
    §

    ColumnIndexOutOfBounds

    Column index was out of bounds.

    +

    Fields

    §index: usize
    §len: usize
    §

    ColumnNotFound(String)

    No column found for the given name.

    +
    §

    ColumnDecode

    Error occurred while decoding a value from a specific column.

    +

    Fields

    §index: String
    §source: Box<dyn Error + Sync + Send>
    §

    Encode(Box<dyn Error + Sync + Send>)

    Error occured while encoding a value.

    +
    §

    Decode(Box<dyn Error + Sync + Send>)

    Error occurred while decoding a value.

    +
    §

    AnyDriverError(Box<dyn Error + Sync + Send>)

    Error occurred within the Any driver mapping to/from the native driver.

    §

    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>)

    Implementations§

    §

    impl Error

    pub fn into_database_error(self) -> Option<Box<dyn DatabaseError>>

    pub fn as_database_error(&self) -> Option<&(dyn DatabaseError + 'static)>

    Trait Implementations§

    §

    impl Debug for Error

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for Error

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for Error

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    §

    impl<E> From<E> for Error
    where - E: DatabaseError,

    §

    fn from(error: E) -> Error

    Converts to this type from the input type.
    §

    impl From<Error> for Error

    §

    fn from(source: Error) -> Error

    Converts to this type from the input type.
    §

    impl From<MigrateError> for Error

    §

    fn from(error: MigrateError) -> Error

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl !UnwindSafe for Error

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    §

    Migrate(Box<MigrateError>)

    §

    InvalidSavePointStatement

    §

    BeginFailed

    Implementations§

    §

    impl Error

    pub fn into_database_error(self) -> Option<Box<dyn DatabaseError>>

    pub fn as_database_error(&self) -> Option<&(dyn DatabaseError + 'static)>

    Trait Implementations§

    §

    impl Debug for Error

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for Error

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for Error

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    §

    impl<E> From<E> for Error
    where + E: DatabaseError,

    §

    fn from(error: E) -> Error

    Converts to this type from the input type.
    §

    impl From<Error> for Error

    §

    fn from(source: Error) -> Error

    Converts to this type from the input type.
    §

    impl From<MigrateError> for Error

    §

    fn from(error: MigrateError) -> Error

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl Freeze for Error

    §

    impl !RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl !UnwindSafe for Error

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 38e2ce3b..338de9ca 100644 --- a/db_sqlx_postgres/dev/enum.Login.html +++ b/db_sqlx_postgres/dev/enum.Login.html @@ -1,36 +1,43 @@ -Login in db_sqlx_postgres::dev - Rust -
    pub enum Login<'a> {
    -    Username(&'a str),
    -    Email(&'a str),
    +Login in db_sqlx_postgres::dev - Rust

    Enum Login

    pub enum Login<'a> {
    +    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§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( +

    Variants§

    §

    Username(&'a str)

    username as login

    +
    §

    Email(&'a str)

    email as login

    +

    Trait Implementations§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Login<'a>

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

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

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

    fn clone_into(&self, target: &mut T)

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

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 2716f1dd..b7263321 100644 --- a/db_sqlx_postgres/dev/errors/enum.DBError.html +++ b/db_sqlx_postgres/dev/errors/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_postgres::dev::errors - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_postgres::dev::errors - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

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

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

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

    fn in_current_span(self) -> Instrumented<Self>

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

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 0e4322bb..d2c3e28b 100644 --- a/db_sqlx_postgres/dev/errors/index.html +++ b/db_sqlx_postgres/dev/errors/index.html @@ -1,3 +1,2 @@ -db_sqlx_postgres::dev::errors - Rust -
    Expand description

    represents all the ways a trait can fail using this crate

    -

    Enums§

    • Error data structure grouping various error subtypes

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure
    \ No newline at end of file +db_sqlx_postgres::dev::errors - Rust

    Module errors

    Expand description

    represents all the ways a trait can fail using this crate

    +

    Enums§

    DBError
    Error data structure grouping various error subtypes

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    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 b13d03e2..1f743d48 100644 --- a/db_sqlx_postgres/dev/errors/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/errors/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_postgres::dev::errors - Rust -
    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_postgres::dev::errors - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ 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 26baddb0..9092d4d7 100644 --- a/db_sqlx_postgres/dev/errors/type.DBResult.html +++ b/db_sqlx_postgres/dev/errors/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_postgres::dev::errors - Rust -

    Type Alias db_sqlx_postgres::dev::errors::DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_postgres::dev::errors - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/index.html b/db_sqlx_postgres/dev/index.html index 0c52656d..719c10e8 100644 --- a/db_sqlx_postgres/dev/index.html +++ b/db_sqlx_postgres/dev/index.html @@ -1,3 +1,2 @@ -db_sqlx_postgres::dev - Rust -

    Module db_sqlx_postgres::dev

    source ·

    Re-exports§

    Modules§

    • represents all the ways a trait can fail using this crate
    • meta operations like migration and connecting to a database
    • useful imports for users working with a supported database
    • Test utilities

    Structs§

    Enums§

    • Error data structure grouping various error subtypes
    • Represents all the ways a method can fail within SQLx.
    • types of credentials used as identifiers during login

    Traits§

    • Trait to clone MCDatabase
    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • mCaptcha’s database requirements. To implement support for $Database, kindly implement this -trait.
    • database migrations

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure

    Attribute Macros§

    \ No newline at end of file +db_sqlx_postgres::dev - Rust

    Module dev

    Source

    Re-exports§

    pub use super::Database;
    pub use super::errors::*;

    Modules§

    errors
    represents all the ways a trait can fail using this crate
    ops
    meta operations like migration and connecting to a database
    prelude
    useful imports for users working with a supported database
    tests
    Test utilities

    Structs§

    AddNotification
    Data required to add notification
    Captcha
    Data representing a captcha
    CreateCaptcha
    data required to create new captcha
    CreatePerformanceAnalytics
    Log Proof-of-Work CAPTCHA performance analytics
    EasyCaptcha
    Represents Easy captcha configuration
    Level
    Level struct that describes threshold-difficulty factor mapping
    NameHash
    type encapsulating username and hashed password of a user
    Notification
    Represents notification
    PerformanceAnalytics
    Proof-of-Work CAPTCHA performance analytics
    Register
    Data required to register a new user
    Secret
    datastructure representing a user’s secret
    StatsUnixTimestamp
    Captcha statistics with time recorded in UNIX epoch formats
    TrafficPattern
    User’s traffic pattern; used in generating a captcha configuration
    UpdateEmail
    data required to update them email of a user

    Enums§

    DBError
    Error data structure grouping various error subtypes
    Error
    Represents all the ways a method can fail within SQLx.
    Login
    types of credentials used as identifiers during login

    Traits§

    CloneSPDatabase
    Trait to clone MCDatabase
    Connect
    Create database connection
    DBOps
    Database operations trait(migrations, pool creation and fetching connection from pool)
    GetConnection
    Get database connection
    MCDatabase
    mCaptcha’s database requirements. To implement support for $Database, kindly implement this +trait.
    Migrate
    database migrations

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    Generic result data structure

    Attribute Macros§

    async_trait
    \ 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 2724f670..2af918ad 100644 --- a/db_sqlx_postgres/dev/ops/index.html +++ b/db_sqlx_postgres/dev/ops/index.html @@ -1,3 +1,2 @@ -db_sqlx_postgres::dev::ops - Rust -

    Module db_sqlx_postgres::dev::ops

    Expand description

    meta operations like migration and connecting to a database

    -

    Traits§

    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • database migrations
    \ No newline at end of file +db_sqlx_postgres::dev::ops - Rust

    Module ops

    Expand description

    meta operations like migration and connecting to a database

    +

    Traits§

    Connect
    Create database connection
    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_sqlx_postgres/dev/ops/trait.Connect.html b/db_sqlx_postgres/dev/ops/trait.Connect.html index 562e7c79..b81365d5 100644 --- a/db_sqlx_postgres/dev/ops/trait.Connect.html +++ b/db_sqlx_postgres/dev/ops/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_postgres::dev::ops - Rust -
    pub trait Connect {
    +Connect in db_sqlx_postgres::dev::ops - Rust

    Trait Connect

    pub trait Connect {
         type Pool: MCDatabase;
     
         // Required method
         fn connect<'async_trait>(
    -        self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    +        self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
            where Self: 'async_trait;
     }
    Expand description

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    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 7911fad3..ca744ba6 100644 --- a/db_sqlx_postgres/dev/ops/trait.DBOps.html +++ b/db_sqlx_postgres/dev/ops/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_postgres::dev::ops - Rust -
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    +DBOps in db_sqlx_postgres::dev::ops - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    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 0454f01f..392ec991 100644 --- a/db_sqlx_postgres/dev/ops/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/ops/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_postgres::dev::ops - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_postgres::dev::ops - Rust

    Trait GetConnection

    pub trait GetConnection {
         type Conn;
     
         // Required method
         fn get_conn<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_postgres/dev/ops/trait.Migrate.html b/db_sqlx_postgres/dev/ops/trait.Migrate.html index e6d1efb1..b4bcde21 100644 --- a/db_sqlx_postgres/dev/ops/trait.Migrate.html +++ b/db_sqlx_postgres/dev/ops/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_postgres::dev::ops - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_postgres::dev::ops - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    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 bc4dc060..42316e21 100644 --- a/db_sqlx_postgres/dev/prelude/dev/attr.async_trait.html +++ b/db_sqlx_postgres/dev/prelude/dev/attr.async_trait.html @@ -1,2 +1 @@ -async_trait in db_sqlx_postgres::dev::prelude::dev - Rust -

    Attribute Macro db_sqlx_postgres::dev::prelude::dev::async_trait

    #[async_trait]
    \ No newline at end of file +async_trait in db_sqlx_postgres::dev::prelude::dev - Rust

    Attribute Macro async_trait

    Source
    #[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 8f9fabb6..73e06ecf 100644 --- a/db_sqlx_postgres/dev/prelude/dev/enum.DBError.html +++ b/db_sqlx_postgres/dev/prelude/dev/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_postgres::dev::prelude::dev - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 68bd5e4c..850d570f 100644 --- a/db_sqlx_postgres/dev/prelude/dev/enum.Login.html +++ b/db_sqlx_postgres/dev/prelude/dev/enum.Login.html @@ -1,36 +1,43 @@ -Login in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub enum Login<'a> {
    -    Username(&'a str),
    -    Email(&'a str),
    +Login in db_sqlx_postgres::dev::prelude::dev - Rust

    Enum Login

    pub enum Login<'a> {
    +    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§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( +

    Variants§

    §

    Username(&'a str)

    username as login

    +
    §

    Email(&'a str)

    email as login

    +

    Trait Implementations§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Login<'a>

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 a6790dd5..d6b43dbb 100644 --- a/db_sqlx_postgres/dev/prelude/dev/index.html +++ b/db_sqlx_postgres/dev/prelude/dev/index.html @@ -1,4 +1,3 @@ -db_sqlx_postgres::dev::prelude::dev - Rust -
    Expand description

    useful imports for supporting a new database

    -

    Structs§

    Enums§

    • Error data structure grouping various error subtypes
    • types of credentials used as identifiers during login

    Traits§

    • Trait to clone MCDatabase
    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • mCaptcha’s database requirements. To implement support for $Database, kindly implement this -trait.
    • database migrations

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure

    Attribute Macros§

    \ No newline at end of file +db_sqlx_postgres::dev::prelude::dev - Rust

    Module dev

    Expand description

    useful imports for supporting a new database

    +

    Structs§

    AddNotification
    Data required to add notification
    Captcha
    Data representing a captcha
    CreateCaptcha
    data required to create new captcha
    CreatePerformanceAnalytics
    Log Proof-of-Work CAPTCHA performance analytics
    EasyCaptcha
    Represents Easy captcha configuration
    Level
    Level struct that describes threshold-difficulty factor mapping
    NameHash
    type encapsulating username and hashed password of a user
    Notification
    Represents notification
    PerformanceAnalytics
    Proof-of-Work CAPTCHA performance analytics
    Register
    Data required to register a new user
    Secret
    datastructure representing a user’s secret
    StatsUnixTimestamp
    Captcha statistics with time recorded in UNIX epoch formats
    TrafficPattern
    User’s traffic pattern; used in generating a captcha configuration
    UpdateEmail
    data required to update them email of a user

    Enums§

    DBError
    Error data structure grouping various error subtypes
    Login
    types of credentials used as identifiers during login

    Traits§

    CloneSPDatabase
    Trait to clone MCDatabase
    Connect
    Create database connection
    DBOps
    Database operations trait(migrations, pool creation and fetching connection from pool)
    GetConnection
    Get database connection
    MCDatabase
    mCaptcha’s database requirements. To implement support for $Database, kindly implement this +trait.
    Migrate
    database migrations

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    Generic result data structure

    Attribute Macros§

    async_trait
    \ 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 f72ebf6a..113f31e2 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.AddNotification.html @@ -1,40 +1,47 @@ -AddNotification in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct AddNotification<'a> {
    -    pub to: &'a str,
    -    pub from: &'a str,
    -    pub heading: &'a str,
    -    pub message: &'a str,
    +AddNotification in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct AddNotification

    pub struct AddNotification<'a> {
    +    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

    message of the notification

    -

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( +

    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

    message of the notification

    +

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AddNotification<'a>

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 d9dfbff5..7405ddc5 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Captcha.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Captcha.html @@ -1,39 +1,46 @@ -Captcha in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct Captcha {
    -    pub config_id: i32,
    -    pub duration: i32,
    -    pub description: String,
    -    pub key: String,
    +Captcha in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct Captcha

    pub struct Captcha {
    +    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 170172c6..14eae30d 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.CreateCaptcha.html @@ -1,38 +1,45 @@ -CreateCaptcha in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct CreateCaptcha<'a> {
    -    pub duration: i32,
    -    pub description: &'a str,
    -    pub key: &'a str,
    +CreateCaptcha in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct CreateCaptcha

    pub struct CreateCaptcha<'a> {
    +    pub duration: i32,
    +    pub description: &'a str,
    +    pub key: &'a str,
     }
    Expand description

    data required 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§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( +

    Fields§

    §duration: i32

    cool down duration

    +
    §description: &'a str

    description of the captcha

    +
    §key: &'a str

    secret key of the captcha

    +

    Trait Implementations§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CreateCaptcha<'a>

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.CreatePerformanceAnalytics.html b/db_sqlx_postgres/dev/prelude/dev/struct.CreatePerformanceAnalytics.html index 47a0c52e..72029cd7 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.CreatePerformanceAnalytics.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.CreatePerformanceAnalytics.html @@ -1,37 +1,44 @@ -CreatePerformanceAnalytics in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct CreatePerformanceAnalytics {
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +CreatePerformanceAnalytics in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct CreatePerformanceAnalytics

    pub struct CreatePerformanceAnalytics {
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Log Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.EasyCaptcha.html b/db_sqlx_postgres/dev/prelude/dev/struct.EasyCaptcha.html index 7c2c257d..16f7eddb 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.EasyCaptcha.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.EasyCaptcha.html @@ -1,39 +1,46 @@ -EasyCaptcha in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct EasyCaptcha {
    +EasyCaptcha in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct EasyCaptcha

    pub struct EasyCaptcha {
         pub traffic_pattern: TrafficPattern,
    -    pub key: String,
    -    pub description: String,
    -    pub username: String,
    +    pub key: String,
    +    pub description: String,
    +    pub username: String,
     }
    Expand description

    Represents Easy captcha configuration

    Fields§

    §traffic_pattern: TrafficPattern

    traffic pattern of easy captcha

    -
    §key: String

    captcha key/sitekey

    -
    §description: String

    captcha description

    -
    §username: String

    Owner of the captcha configuration

    -

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( +

    §key: String

    captcha key/sitekey

    +
    §description: String

    captcha description

    +
    §username: String

    Owner of the captcha configuration

    +

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 796575b2..daa5eec2 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Level.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Level.html @@ -1,33 +1,40 @@ -Level in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct Level {
    -    pub visitor_threshold: u32,
    -    pub difficulty_factor: u32,
    +Level in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct Level

    pub struct Level {
    +    pub visitor_threshold: u32,
    +    pub difficulty_factor: u32,
     }
    Expand description

    Level struct that describes threshold-difficulty factor mapping

    -

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( +

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl Freeze for Level

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 eb9e56fb..80f6b9eb 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.NameHash.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.NameHash.html @@ -1,35 +1,42 @@ -NameHash in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct NameHash {
    -    pub username: String,
    -    pub hash: String,
    +NameHash in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct NameHash

    pub struct NameHash {
    +    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§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( +

    Fields§

    §username: String

    username

    +
    §hash: String

    hashed password

    +

    Trait Implementations§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 de61a367..07507886 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Notification.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Notification.html @@ -1,41 +1,48 @@ -Notification in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct Notification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<i64>,
    -    pub id: Option<i32>,
    +Notification in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct Notification

    pub struct Notification {
    +    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.PerformanceAnalytics.html b/db_sqlx_postgres/dev/prelude/dev/struct.PerformanceAnalytics.html index c44b5330..cf6ba552 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.PerformanceAnalytics.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.PerformanceAnalytics.html @@ -1,39 +1,46 @@ -PerformanceAnalytics in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct PerformanceAnalytics {
    -    pub id: usize,
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +PerformanceAnalytics in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct PerformanceAnalytics

    pub struct PerformanceAnalytics {
    +    pub id: usize,
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §id: usize

    log ID

    -
    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §id: usize

    log ID

    +
    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 3ee3f8db..cf639b08 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Register.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Register.html @@ -1,40 +1,47 @@ -Register in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct Register<'a> {
    -    pub username: &'a str,
    -    pub secret: &'a str,
    -    pub hash: &'a str,
    -    pub email: Option<&'a str>,
    +Register in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct Register

    pub struct Register<'a> {
    +    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( +

    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Register<'a>

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 e94a17fa..ad16698c 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Secret.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Secret.html @@ -1,33 +1,40 @@ -Secret in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct Secret {
    -    pub secret: String,
    +Secret in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct Secret

    pub struct Secret {
    +    pub secret: String,
     }
    Expand description

    datastructure representing a user’s secret

    -

    Fields§

    §secret: String

    user’s secret

    -

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( +

    Fields§

    §secret: String

    user’s secret

    +

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    §

    impl Freeze for Secret

    §

    impl RefUnwindSafe for Secret

    §

    impl Send for Secret

    §

    impl Sync for Secret

    §

    impl Unpin for Secret

    §

    impl UnwindSafe for Secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 b02ad3c3..038f9638 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.StatsUnixTimestamp.html @@ -1,37 +1,44 @@ -StatsUnixTimestamp in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct StatsUnixTimestamp {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    +StatsUnixTimestamp in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct StatsUnixTimestamp

    pub struct StatsUnixTimestamp {
    +    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 37222738..461b54f8 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.TrafficPattern.html @@ -1,37 +1,44 @@ -TrafficPattern in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct TrafficPattern {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    +TrafficPattern in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct TrafficPattern

    pub struct TrafficPattern {
    +    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>

    traffic that bought the user’s website down; optional

    -

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( +

    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>

    traffic that bought the user’s website down; optional

    +

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 8dc5942c..e672084f 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.UpdateEmail.html @@ -1,36 +1,43 @@ -UpdateEmail in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub struct UpdateEmail<'a> {
    -    pub username: &'a str,
    -    pub new_email: &'a str,
    +UpdateEmail in db_sqlx_postgres::dev::prelude::dev - Rust

    Struct UpdateEmail

    pub struct UpdateEmail<'a> {
    +    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§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( +

    Fields§

    §username: &'a str

    username of the user

    +
    §new_email: &'a str

    new email address of the user

    +

    Trait Implementations§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for UpdateEmail<'a>

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 f6ed04e7..19cb22b6 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.CloneSPDatabase.html @@ -1,8 +1,7 @@ -CloneSPDatabase in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub trait CloneSPDatabase {
    +CloneSPDatabase in db_sqlx_postgres::dev::prelude::dev - Rust

    Trait CloneSPDatabase

    pub trait CloneSPDatabase {
         // Required method
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +    fn clone_db(&self) -> Box<dyn MCDatabase>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    +

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    Implementors§

    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    \ No newline at end of file + T: MCDatabase + Clone + 'static,
    \ 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 b1046218..52262151 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.Connect.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub trait Connect {
    +Connect in db_sqlx_postgres::dev::prelude::dev - Rust

    Trait Connect

    pub trait Connect {
         type Pool: MCDatabase;
     
         // Required method
         fn connect<'async_trait>(
    -        self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    +        self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
            where Self: 'async_trait;
     }
    Expand description

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    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 92c1fdc3..40dae61b 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.DBOps.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    +DBOps in db_sqlx_postgres::dev::prelude::dev - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    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 50c5ef65..660c4ab2 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_postgres::dev::prelude::dev - Rust

    Trait GetConnection

    pub trait GetConnection {
         type Conn;
     
         // Required method
         fn get_conn<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html b/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html index 8341d107..1cdaeb12 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html @@ -1,139 +1,141 @@ -MCDatabase in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub trait MCDatabase: Send + Sync + CloneSPDatabase {
    +MCDatabase in db_sqlx_postgres::dev::prelude::dev - Rust

    Trait MCDatabase

    pub trait MCDatabase:
    +    Send
    +    + Sync
    +    + CloneSPDatabase {
     
    Show 49 methods // Required methods fn ping<'life0, 'async_trait>( - &'life0 self - ) -> Pin<Box<dyn Future<Output = bool> + Send + '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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 Register<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<Option<String>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + email: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 UpdateEmail<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<NameHash, DBError>> + Send + 'async_trait>> + l: &'life1 Login<'_>, + ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 NameHash, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + current: &'life1 str, + new: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Secret, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + secret: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Captcha, DBError>> + Send + 'async_trait>> + username: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + 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 = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -141,10 +143,10 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -152,53 +154,53 @@ 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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Level>, DBError>> + Send + 'async_trait>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + 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 = Result<i32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -206,325 +208,325 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> where 'life0: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 AddNotification<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Notification>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + id: i32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + psuedo_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> + page: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 - ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 - ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> + duration: u32, + ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 - ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> + duration: u32, + location: u32, + ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; // Provided method fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait { ... }
    }
    Expand description

    mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

    Required Methods§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    ping DB

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    register a new user

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    delete a user

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if username exists

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get user email

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if email exists

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update a user’s email

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s password

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update user’s password

    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>>
    where + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update username

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret from a captcha key

    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>>
    where + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update a user’s secret

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    create new captcha

    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>>
    where + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha config

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get all captchas belonging to user

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    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>>
    where + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -532,10 +534,10 @@ trait.

    Self: 'async_trait,

    update captcha key; doesn’t change metadata

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -543,53 +545,53 @@ trait.

    Self: 'async_trait,

    Add levels to captcha

    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>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    check if captcha exists

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete all levels of a captcha

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete captcha

    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>, DBError>> + Send + 'async_trait>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha levels

    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>>
    where + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get captcha’s cooldown period

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -597,187 +599,187 @@ trait.

    Self: 'async_trait,

    Add traffic configuration

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get traffic configuration

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all easy captcha configurations on instance

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete traffic configuration

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    create new notification

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get all unread notifications

    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>>
    where + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    mark a notification read

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig fetches

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig solves

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig confirms

    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>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig fetches

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig solves

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig confirms

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    record PoW timing

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    fetch PoW analytics

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get psuedo ID from campaign ID

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get campaign ID from psuedo ID

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Delete all records for campaign

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all psuedo IDs

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Track maximum nonce received against captcha levels

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get number of analytics entries that are under a certain duration

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    Provided Methods§

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID

    -

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file +

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    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 c3d33a7d..0c427c3f 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.Migrate.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_postgres::dev::prelude::dev - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    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 42fde7b1..53ea1780 100644 --- a/db_sqlx_postgres/dev/prelude/dev/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/prelude/dev/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_postgres::dev::prelude::dev - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ 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 c50f7564..e1a49154 100644 --- a/db_sqlx_postgres/dev/prelude/dev/type.DBResult.html +++ b/db_sqlx_postgres/dev/prelude/dev/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_postgres::dev::prelude::dev - Rust -
    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_postgres::dev::prelude::dev - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ 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 542ce151..0d0225f1 100644 --- a/db_sqlx_postgres/dev/prelude/enum.DBError.html +++ b/db_sqlx_postgres/dev/prelude/enum.DBError.html @@ -1,6 +1,5 @@ -DBError in db_sqlx_postgres::dev::prelude - Rust -
    pub enum DBError {
    -    DBError(Box<dyn Error + Send + Sync>),
    +DBError in db_sqlx_postgres::dev::prelude - Rust

    Enum DBError

    pub enum DBError {
    +    DBError(Box<dyn Error + Sync + Send>),
         UsernameTaken,
         EmailTaken,
         SecretTaken,
    @@ -10,7 +9,7 @@
         TrafficPatternNotFound,
         NotificationNotFound,
     }
    Expand description

    Error data structure grouping various error subtypes

    -

    Variants§

    §

    DBError(Box<dyn Error + Send + Sync>)

    errors that are specific to a database implementation

    +

    Variants§

    §

    DBError(Box<dyn Error + Sync + Send>)

    errors that are specific to a database implementation

    §

    UsernameTaken

    Username is taken

    §

    EmailTaken

    Email is taken

    §

    SecretTaken

    Secret is taken

    @@ -19,21 +18,29 @@
    §

    CaptchaNotFound

    Captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    §

    NotificationNotFound

    Notification not found

    -

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    §

    impl Debug for DBError

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Display for DBError

    §

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Error for DBError

    §

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 7b38e1cc..d3e69b59 100644 --- a/db_sqlx_postgres/dev/prelude/enum.Login.html +++ b/db_sqlx_postgres/dev/prelude/enum.Login.html @@ -1,36 +1,43 @@ -Login in db_sqlx_postgres::dev::prelude - Rust -
    pub enum Login<'a> {
    -    Username(&'a str),
    -    Email(&'a str),
    +Login in db_sqlx_postgres::dev::prelude - Rust

    Enum Login

    pub enum Login<'a> {
    +    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§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( +

    Variants§

    §

    Username(&'a str)

    username as login

    +
    §

    Email(&'a str)

    email as login

    +

    Trait Implementations§

    §

    impl<'a> Clone for Login<'a>

    §

    fn clone(&self) -> Login<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Login<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Login<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Login<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Login<'a>

    §

    fn eq(&self, other: &Login<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Login<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Login<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Login<'a>

    §

    impl<'a> RefUnwindSafe for Login<'a>

    §

    impl<'a> Send for Login<'a>

    §

    impl<'a> Sync for Login<'a>

    §

    impl<'a> Unpin for Login<'a>

    §

    impl<'a> UnwindSafe for Login<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 78e4c864..659b20ff 100644 --- a/db_sqlx_postgres/dev/prelude/index.html +++ b/db_sqlx_postgres/dev/prelude/index.html @@ -1,4 +1,3 @@ -db_sqlx_postgres::dev::prelude - Rust -
    Expand description

    useful imports for users working with a supported database

    -

    Modules§

    • useful imports for supporting a new database

    Structs§

    Enums§

    • Error data structure grouping various error subtypes
    • types of credentials used as identifiers during login

    Traits§

    • Trait to clone MCDatabase
    • Create database connection
    • Database operations trait(migrations, pool creation and fetching connection from pool)
    • Get database connection
    • mCaptcha’s database requirements. To implement support for $Database, kindly implement this -trait.
    • database migrations

    Type Aliases§

    • Convenience type alias for grouping driver-specific errors
    • Generic result data structure
    \ No newline at end of file +db_sqlx_postgres::dev::prelude - Rust

    Module prelude

    Expand description

    useful imports for users working with a supported database

    +

    Modules§

    dev
    useful imports for supporting a new database

    Structs§

    AddNotification
    Data required to add notification
    Captcha
    Data representing a captcha
    CreateCaptcha
    data required to create new captcha
    CreatePerformanceAnalytics
    Log Proof-of-Work CAPTCHA performance analytics
    EasyCaptcha
    Represents Easy captcha configuration
    Level
    Level struct that describes threshold-difficulty factor mapping
    NameHash
    type encapsulating username and hashed password of a user
    Notification
    Represents notification
    PerformanceAnalytics
    Proof-of-Work CAPTCHA performance analytics
    Register
    Data required to register a new user
    Secret
    datastructure representing a user’s secret
    StatsUnixTimestamp
    Captcha statistics with time recorded in UNIX epoch formats
    TrafficPattern
    User’s traffic pattern; used in generating a captcha configuration
    UpdateEmail
    data required to update them email of a user

    Enums§

    DBError
    Error data structure grouping various error subtypes
    Login
    types of credentials used as identifiers during login

    Traits§

    CloneSPDatabase
    Trait to clone MCDatabase
    Connect
    Create database connection
    DBOps
    Database operations trait(migrations, pool creation and fetching connection from pool)
    GetConnection
    Get database connection
    MCDatabase
    mCaptcha’s database requirements. To implement support for $Database, kindly implement this +trait.
    Migrate
    database migrations

    Type Aliases§

    BoxDynError
    Convenience type alias for grouping driver-specific errors
    DBResult
    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 c0d22b64..5ea5238f 100644 --- a/db_sqlx_postgres/dev/prelude/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/prelude/struct.AddNotification.html @@ -1,40 +1,47 @@ -AddNotification in db_sqlx_postgres::dev::prelude - Rust -
    pub struct AddNotification<'a> {
    -    pub to: &'a str,
    -    pub from: &'a str,
    -    pub heading: &'a str,
    -    pub message: &'a str,
    +AddNotification in db_sqlx_postgres::dev::prelude - Rust

    Struct AddNotification

    pub struct AddNotification<'a> {
    +    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

    message of the notification

    -

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( +

    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

    message of the notification

    +

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AddNotification<'a>

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ff9ae601..9e930107 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Captcha.html +++ b/db_sqlx_postgres/dev/prelude/struct.Captcha.html @@ -1,39 +1,46 @@ -Captcha in db_sqlx_postgres::dev::prelude - Rust -
    pub struct Captcha {
    -    pub config_id: i32,
    -    pub duration: i32,
    -    pub description: String,
    -    pub key: String,
    +Captcha in db_sqlx_postgres::dev::prelude - Rust

    Struct Captcha

    pub struct Captcha {
    +    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 8270a21d..c548f91c 100644 --- a/db_sqlx_postgres/dev/prelude/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/prelude/struct.CreateCaptcha.html @@ -1,38 +1,45 @@ -CreateCaptcha in db_sqlx_postgres::dev::prelude - Rust -
    pub struct CreateCaptcha<'a> {
    -    pub duration: i32,
    -    pub description: &'a str,
    -    pub key: &'a str,
    +CreateCaptcha in db_sqlx_postgres::dev::prelude - Rust

    Struct CreateCaptcha

    pub struct CreateCaptcha<'a> {
    +    pub duration: i32,
    +    pub description: &'a str,
    +    pub key: &'a str,
     }
    Expand description

    data required 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§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( +

    Fields§

    §duration: i32

    cool down duration

    +
    §description: &'a str

    description of the captcha

    +
    §key: &'a str

    secret key of the captcha

    +

    Trait Implementations§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CreateCaptcha<'a>

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.CreatePerformanceAnalytics.html b/db_sqlx_postgres/dev/prelude/struct.CreatePerformanceAnalytics.html index 341f3c0c..ca13c2b9 100644 --- a/db_sqlx_postgres/dev/prelude/struct.CreatePerformanceAnalytics.html +++ b/db_sqlx_postgres/dev/prelude/struct.CreatePerformanceAnalytics.html @@ -1,37 +1,44 @@ -CreatePerformanceAnalytics in db_sqlx_postgres::dev::prelude - Rust -
    pub struct CreatePerformanceAnalytics {
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +CreatePerformanceAnalytics in db_sqlx_postgres::dev::prelude - Rust

    Struct CreatePerformanceAnalytics

    pub struct CreatePerformanceAnalytics {
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Log Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.EasyCaptcha.html b/db_sqlx_postgres/dev/prelude/struct.EasyCaptcha.html index 1b242a9f..4987c012 100644 --- a/db_sqlx_postgres/dev/prelude/struct.EasyCaptcha.html +++ b/db_sqlx_postgres/dev/prelude/struct.EasyCaptcha.html @@ -1,39 +1,46 @@ -EasyCaptcha in db_sqlx_postgres::dev::prelude - Rust -
    pub struct EasyCaptcha {
    +EasyCaptcha in db_sqlx_postgres::dev::prelude - Rust

    Struct EasyCaptcha

    pub struct EasyCaptcha {
         pub traffic_pattern: TrafficPattern,
    -    pub key: String,
    -    pub description: String,
    -    pub username: String,
    +    pub key: String,
    +    pub description: String,
    +    pub username: String,
     }
    Expand description

    Represents Easy captcha configuration

    Fields§

    §traffic_pattern: TrafficPattern

    traffic pattern of easy captcha

    -
    §key: String

    captcha key/sitekey

    -
    §description: String

    captcha description

    -
    §username: String

    Owner of the captcha configuration

    -

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( +

    §key: String

    captcha key/sitekey

    +
    §description: String

    captcha description

    +
    §username: String

    Owner of the captcha configuration

    +

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ec25d66f..0f87e48c 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Level.html +++ b/db_sqlx_postgres/dev/prelude/struct.Level.html @@ -1,33 +1,40 @@ -Level in db_sqlx_postgres::dev::prelude - Rust -
    pub struct Level {
    -    pub visitor_threshold: u32,
    -    pub difficulty_factor: u32,
    +Level in db_sqlx_postgres::dev::prelude - Rust

    Struct Level

    pub struct Level {
    +    pub visitor_threshold: u32,
    +    pub difficulty_factor: u32,
     }
    Expand description

    Level struct that describes threshold-difficulty factor mapping

    -

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( +

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl Freeze for Level

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 7d10c795..c2dce8da 100644 --- a/db_sqlx_postgres/dev/prelude/struct.NameHash.html +++ b/db_sqlx_postgres/dev/prelude/struct.NameHash.html @@ -1,35 +1,42 @@ -NameHash in db_sqlx_postgres::dev::prelude - Rust -
    pub struct NameHash {
    -    pub username: String,
    -    pub hash: String,
    +NameHash in db_sqlx_postgres::dev::prelude - Rust

    Struct NameHash

    pub struct NameHash {
    +    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§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( +

    Fields§

    §username: String

    username

    +
    §hash: String

    hashed password

    +

    Trait Implementations§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 9347b21e..d488a3d2 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Notification.html +++ b/db_sqlx_postgres/dev/prelude/struct.Notification.html @@ -1,41 +1,48 @@ -Notification in db_sqlx_postgres::dev::prelude - Rust -
    pub struct Notification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<i64>,
    -    pub id: Option<i32>,
    +Notification in db_sqlx_postgres::dev::prelude - Rust

    Struct Notification

    pub struct Notification {
    +    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.PerformanceAnalytics.html b/db_sqlx_postgres/dev/prelude/struct.PerformanceAnalytics.html index ef000a20..e23edbb1 100644 --- a/db_sqlx_postgres/dev/prelude/struct.PerformanceAnalytics.html +++ b/db_sqlx_postgres/dev/prelude/struct.PerformanceAnalytics.html @@ -1,39 +1,46 @@ -PerformanceAnalytics in db_sqlx_postgres::dev::prelude - Rust -
    pub struct PerformanceAnalytics {
    -    pub id: usize,
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +PerformanceAnalytics in db_sqlx_postgres::dev::prelude - Rust

    Struct PerformanceAnalytics

    pub struct PerformanceAnalytics {
    +    pub id: usize,
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §id: usize

    log ID

    -
    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §id: usize

    log ID

    +
    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 5f6ff20a..20d983bc 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Register.html +++ b/db_sqlx_postgres/dev/prelude/struct.Register.html @@ -1,40 +1,47 @@ -Register in db_sqlx_postgres::dev::prelude - Rust -
    pub struct Register<'a> {
    -    pub username: &'a str,
    -    pub secret: &'a str,
    -    pub hash: &'a str,
    -    pub email: Option<&'a str>,
    +Register in db_sqlx_postgres::dev::prelude - Rust

    Struct Register

    pub struct Register<'a> {
    +    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( +

    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Register<'a>

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ae560ee9..39d3da35 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Secret.html +++ b/db_sqlx_postgres/dev/prelude/struct.Secret.html @@ -1,33 +1,40 @@ -Secret in db_sqlx_postgres::dev::prelude - Rust -
    pub struct Secret {
    -    pub secret: String,
    +Secret in db_sqlx_postgres::dev::prelude - Rust

    Struct Secret

    pub struct Secret {
    +    pub secret: String,
     }
    Expand description

    datastructure representing a user’s secret

    -

    Fields§

    §secret: String

    user’s secret

    -

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( +

    Fields§

    §secret: String

    user’s secret

    +

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    §

    impl Freeze for Secret

    §

    impl RefUnwindSafe for Secret

    §

    impl Send for Secret

    §

    impl Sync for Secret

    §

    impl Unpin for Secret

    §

    impl UnwindSafe for Secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 81ea4889..14aee227 100644 --- a/db_sqlx_postgres/dev/prelude/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/prelude/struct.StatsUnixTimestamp.html @@ -1,37 +1,44 @@ -StatsUnixTimestamp in db_sqlx_postgres::dev::prelude - Rust -
    pub struct StatsUnixTimestamp {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    +StatsUnixTimestamp in db_sqlx_postgres::dev::prelude - Rust

    Struct StatsUnixTimestamp

    pub struct StatsUnixTimestamp {
    +    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 764b26f7..c1dbc183 100644 --- a/db_sqlx_postgres/dev/prelude/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/prelude/struct.TrafficPattern.html @@ -1,37 +1,44 @@ -TrafficPattern in db_sqlx_postgres::dev::prelude - Rust -
    pub struct TrafficPattern {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    +TrafficPattern in db_sqlx_postgres::dev::prelude - Rust

    Struct TrafficPattern

    pub struct TrafficPattern {
    +    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>

    traffic that bought the user’s website down; optional

    -

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( +

    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>

    traffic that bought the user’s website down; optional

    +

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ab1daec8..b2d11edd 100644 --- a/db_sqlx_postgres/dev/prelude/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/prelude/struct.UpdateEmail.html @@ -1,36 +1,43 @@ -UpdateEmail in db_sqlx_postgres::dev::prelude - Rust -
    pub struct UpdateEmail<'a> {
    -    pub username: &'a str,
    -    pub new_email: &'a str,
    +UpdateEmail in db_sqlx_postgres::dev::prelude - Rust

    Struct UpdateEmail

    pub struct UpdateEmail<'a> {
    +    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§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( +

    Fields§

    §username: &'a str

    username of the user

    +
    §new_email: &'a str

    new email address of the user

    +

    Trait Implementations§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for UpdateEmail<'a>

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 3f2d7e92..d62fcc91 100644 --- a/db_sqlx_postgres/dev/prelude/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/prelude/trait.CloneSPDatabase.html @@ -1,8 +1,7 @@ -CloneSPDatabase in db_sqlx_postgres::dev::prelude - Rust -
    pub trait CloneSPDatabase {
    +CloneSPDatabase in db_sqlx_postgres::dev::prelude - Rust

    Trait CloneSPDatabase

    pub trait CloneSPDatabase {
         // Required method
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +    fn clone_db(&self) -> Box<dyn MCDatabase>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    +

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    Implementors§

    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    \ No newline at end of file + T: MCDatabase + Clone + 'static,
    \ 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 ce62a902..c8af4d52 100644 --- a/db_sqlx_postgres/dev/prelude/trait.Connect.html +++ b/db_sqlx_postgres/dev/prelude/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_postgres::dev::prelude - Rust -
    pub trait Connect {
    +Connect in db_sqlx_postgres::dev::prelude - Rust

    Trait Connect

    pub trait Connect {
         type Pool: MCDatabase;
     
         // Required method
         fn connect<'async_trait>(
    -        self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    +        self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
            where Self: 'async_trait;
     }
    Expand description

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    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 796b3ffa..63b4430f 100644 --- a/db_sqlx_postgres/dev/prelude/trait.DBOps.html +++ b/db_sqlx_postgres/dev/prelude/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_postgres::dev::prelude - Rust -
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    +DBOps in db_sqlx_postgres::dev::prelude - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    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 37c38570..80c9bc22 100644 --- a/db_sqlx_postgres/dev/prelude/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/prelude/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_postgres::dev::prelude - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_postgres::dev::prelude - Rust

    Trait GetConnection

    pub trait GetConnection {
         type Conn;
     
         // Required method
         fn get_conn<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html b/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html index f92cfbb5..9b38d2db 100644 --- a/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html @@ -1,139 +1,141 @@ -MCDatabase in db_sqlx_postgres::dev::prelude - Rust -
    pub trait MCDatabase: Send + Sync + CloneSPDatabase {
    +MCDatabase in db_sqlx_postgres::dev::prelude - Rust

    Trait MCDatabase

    pub trait MCDatabase:
    +    Send
    +    + Sync
    +    + CloneSPDatabase {
     
    Show 49 methods // Required methods fn ping<'life0, 'async_trait>( - &'life0 self - ) -> Pin<Box<dyn Future<Output = bool> + Send + '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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 Register<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<Option<String>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + email: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 UpdateEmail<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<NameHash, DBError>> + Send + 'async_trait>> + l: &'life1 Login<'_>, + ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 NameHash, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + current: &'life1 str, + new: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Secret, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + secret: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Captcha, DBError>> + Send + 'async_trait>> + username: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + 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 = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -141,10 +143,10 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -152,53 +154,53 @@ 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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Level>, DBError>> + Send + 'async_trait>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + 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 = Result<i32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -206,325 +208,325 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> where 'life0: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 AddNotification<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Notification>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + id: i32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + psuedo_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> + page: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 - ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 - ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> + duration: u32, + ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 - ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> + duration: u32, + location: u32, + ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; // Provided method fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait { ... }
    }
    Expand description

    mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

    Required Methods§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    ping DB

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    register a new user

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    delete a user

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if username exists

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get user email

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if email exists

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update a user’s email

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s password

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update user’s password

    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>>
    where + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update username

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret from a captcha key

    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>>
    where + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update a user’s secret

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    create new captcha

    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>>
    where + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha config

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get all captchas belonging to user

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    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>>
    where + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -532,10 +534,10 @@ trait.

    Self: 'async_trait,

    update captcha key; doesn’t change metadata

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -543,53 +545,53 @@ trait.

    Self: 'async_trait,

    Add levels to captcha

    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>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    check if captcha exists

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete all levels of a captcha

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete captcha

    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>, DBError>> + Send + 'async_trait>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha levels

    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>>
    where + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get captcha’s cooldown period

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -597,187 +599,187 @@ trait.

    Self: 'async_trait,

    Add traffic configuration

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get traffic configuration

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all easy captcha configurations on instance

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete traffic configuration

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    create new notification

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get all unread notifications

    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>>
    where + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    mark a notification read

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig fetches

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig solves

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig confirms

    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>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig fetches

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig solves

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig confirms

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    record PoW timing

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    fetch PoW analytics

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get psuedo ID from campaign ID

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get campaign ID from psuedo ID

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Delete all records for campaign

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all psuedo IDs

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Track maximum nonce received against captcha levels

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get number of analytics entries that are under a certain duration

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    Provided Methods§

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID

    -

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file +

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    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 331fd01a..5adecc17 100644 --- a/db_sqlx_postgres/dev/prelude/trait.Migrate.html +++ b/db_sqlx_postgres/dev/prelude/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_postgres::dev::prelude - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_postgres::dev::prelude - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    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 e3407d5b..fa3e7ec1 100644 --- a/db_sqlx_postgres/dev/prelude/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/prelude/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_postgres::dev::prelude - Rust -
    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_postgres::dev::prelude - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ 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 d48950a6..e774911d 100644 --- a/db_sqlx_postgres/dev/prelude/type.DBResult.html +++ b/db_sqlx_postgres/dev/prelude/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_postgres::dev::prelude - Rust -
    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_postgres::dev::prelude - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ 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 0e54adb8..6d28aafa 100644 --- a/db_sqlx_postgres/dev/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/struct.AddNotification.html @@ -1,40 +1,47 @@ -AddNotification in db_sqlx_postgres::dev - Rust -
    pub struct AddNotification<'a> {
    -    pub to: &'a str,
    -    pub from: &'a str,
    -    pub heading: &'a str,
    -    pub message: &'a str,
    +AddNotification in db_sqlx_postgres::dev - Rust

    Struct AddNotification

    pub struct AddNotification<'a> {
    +    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

    message of the notification

    -

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( +

    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

    message of the notification

    +

    Trait Implementations§

    §

    impl<'a> Clone for AddNotification<'a>

    §

    fn clone(&self) -> AddNotification<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for AddNotification<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for AddNotification<'a>

    §

    fn default() -> AddNotification<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for AddNotification<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<AddNotification<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for AddNotification<'a>

    §

    fn eq(&self, other: &AddNotification<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for AddNotification<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for AddNotification<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AddNotification<'a>

    §

    impl<'a> RefUnwindSafe for AddNotification<'a>

    §

    impl<'a> Send for AddNotification<'a>

    §

    impl<'a> Sync for AddNotification<'a>

    §

    impl<'a> Unpin for AddNotification<'a>

    §

    impl<'a> UnwindSafe for AddNotification<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 97839326..03002135 100644 --- a/db_sqlx_postgres/dev/struct.Captcha.html +++ b/db_sqlx_postgres/dev/struct.Captcha.html @@ -1,39 +1,46 @@ -Captcha in db_sqlx_postgres::dev - Rust -
    pub struct Captcha {
    -    pub config_id: i32,
    -    pub duration: i32,
    -    pub description: String,
    -    pub key: String,
    +Captcha in db_sqlx_postgres::dev - Rust

    Struct Captcha

    pub struct Captcha {
    +    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Captcha

    §

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Captcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Captcha

    §

    fn default() -> Captcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Captcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Captcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Captcha

    §

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Captcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 393fde1e..29728ab5 100644 --- a/db_sqlx_postgres/dev/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/struct.CreateCaptcha.html @@ -1,38 +1,45 @@ -CreateCaptcha in db_sqlx_postgres::dev - Rust -
    pub struct CreateCaptcha<'a> {
    -    pub duration: i32,
    -    pub description: &'a str,
    -    pub key: &'a str,
    +CreateCaptcha in db_sqlx_postgres::dev - Rust

    Struct CreateCaptcha

    pub struct CreateCaptcha<'a> {
    +    pub duration: i32,
    +    pub description: &'a str,
    +    pub key: &'a str,
     }
    Expand description

    data required 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§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( +

    Fields§

    §duration: i32

    cool down duration

    +
    §description: &'a str

    description of the captcha

    +
    §key: &'a str

    secret key of the captcha

    +

    Trait Implementations§

    §

    impl<'a> Clone for CreateCaptcha<'a>

    §

    fn clone(&self) -> CreateCaptcha<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for CreateCaptcha<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'a> Default for CreateCaptcha<'a>

    §

    fn default() -> CreateCaptcha<'a>

    Returns the “default value” for a type. Read more
    §

    impl<'de, 'a> Deserialize<'de> for CreateCaptcha<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreateCaptcha<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for CreateCaptcha<'a>

    §

    fn eq(&self, other: &CreateCaptcha<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for CreateCaptcha<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for CreateCaptcha<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for CreateCaptcha<'a>

    §

    impl<'a> RefUnwindSafe for CreateCaptcha<'a>

    §

    impl<'a> Send for CreateCaptcha<'a>

    §

    impl<'a> Sync for CreateCaptcha<'a>

    §

    impl<'a> Unpin for CreateCaptcha<'a>

    §

    impl<'a> UnwindSafe for CreateCaptcha<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.CreatePerformanceAnalytics.html b/db_sqlx_postgres/dev/struct.CreatePerformanceAnalytics.html index c8d9414e..27b8037e 100644 --- a/db_sqlx_postgres/dev/struct.CreatePerformanceAnalytics.html +++ b/db_sqlx_postgres/dev/struct.CreatePerformanceAnalytics.html @@ -1,37 +1,44 @@ -CreatePerformanceAnalytics in db_sqlx_postgres::dev - Rust -
    pub struct CreatePerformanceAnalytics {
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +CreatePerformanceAnalytics in db_sqlx_postgres::dev - Rust

    Struct CreatePerformanceAnalytics

    pub struct CreatePerformanceAnalytics {
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Log Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for CreatePerformanceAnalytics

    §

    fn clone(&self) -> CreatePerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for CreatePerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for CreatePerformanceAnalytics

    §

    fn default() -> CreatePerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for CreatePerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<CreatePerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for CreatePerformanceAnalytics

    §

    fn eq(&self, other: &CreatePerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for CreatePerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for CreatePerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.EasyCaptcha.html b/db_sqlx_postgres/dev/struct.EasyCaptcha.html index bb935d25..4c240454 100644 --- a/db_sqlx_postgres/dev/struct.EasyCaptcha.html +++ b/db_sqlx_postgres/dev/struct.EasyCaptcha.html @@ -1,39 +1,46 @@ -EasyCaptcha in db_sqlx_postgres::dev - Rust -
    pub struct EasyCaptcha {
    +EasyCaptcha in db_sqlx_postgres::dev - Rust

    Struct EasyCaptcha

    pub struct EasyCaptcha {
         pub traffic_pattern: TrafficPattern,
    -    pub key: String,
    -    pub description: String,
    -    pub username: String,
    +    pub key: String,
    +    pub description: String,
    +    pub username: String,
     }
    Expand description

    Represents Easy captcha configuration

    Fields§

    §traffic_pattern: TrafficPattern

    traffic pattern of easy captcha

    -
    §key: String

    captcha key/sitekey

    -
    §description: String

    captcha description

    -
    §username: String

    Owner of the captcha configuration

    -

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( +

    §key: String

    captcha key/sitekey

    +
    §description: String

    captcha description

    +
    §username: String

    Owner of the captcha configuration

    +

    Trait Implementations§

    §

    impl Clone for EasyCaptcha

    §

    fn clone(&self) -> EasyCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for EasyCaptcha

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for EasyCaptcha

    §

    fn default() -> EasyCaptcha

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for EasyCaptcha

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<EasyCaptcha, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for EasyCaptcha

    §

    fn eq(&self, other: &EasyCaptcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for EasyCaptcha

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for EasyCaptcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 cde644b4..830500eb 100644 --- a/db_sqlx_postgres/dev/struct.Level.html +++ b/db_sqlx_postgres/dev/struct.Level.html @@ -1,33 +1,40 @@ -Level in db_sqlx_postgres::dev - Rust -

    Struct db_sqlx_postgres::dev::Level

    pub struct Level {
    -    pub visitor_threshold: u32,
    -    pub difficulty_factor: u32,
    +Level in db_sqlx_postgres::dev - Rust

    Struct Level

    pub struct Level {
    +    pub visitor_threshold: u32,
    +    pub difficulty_factor: u32,
     }
    Expand description

    Level struct that describes threshold-difficulty factor mapping

    -

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( +

    Fields§

    §visitor_threshold: u32§difficulty_factor: u32

    Trait Implementations§

    §

    impl Clone for Level

    §

    fn clone(&self) -> Level

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Level

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for Level

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Level, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Level

    §

    fn eq(&self, other: &Level) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Level

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl Copy for Level

    §

    impl StructuralPartialEq for Level

    Auto Trait Implementations§

    §

    impl Freeze for Level

    §

    impl RefUnwindSafe for Level

    §

    impl Send for Level

    §

    impl Sync for Level

    §

    impl Unpin for Level

    §

    impl UnwindSafe for Level

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 0c6cc2b7..241732c0 100644 --- a/db_sqlx_postgres/dev/struct.NameHash.html +++ b/db_sqlx_postgres/dev/struct.NameHash.html @@ -1,35 +1,42 @@ -NameHash in db_sqlx_postgres::dev - Rust -
    pub struct NameHash {
    -    pub username: String,
    -    pub hash: String,
    +NameHash in db_sqlx_postgres::dev - Rust

    Struct NameHash

    pub struct NameHash {
    +    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§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( +

    Fields§

    §username: String

    username

    +
    §hash: String

    hashed password

    +

    Trait Implementations§

    §

    impl Clone for NameHash

    §

    fn clone(&self) -> NameHash

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for NameHash

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de> Deserialize<'de> for NameHash

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<NameHash, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for NameHash

    §

    fn eq(&self, other: &NameHash) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for NameHash

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for NameHash

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 d1ca9c83..ece5464f 100644 --- a/db_sqlx_postgres/dev/struct.Notification.html +++ b/db_sqlx_postgres/dev/struct.Notification.html @@ -1,41 +1,48 @@ -Notification in db_sqlx_postgres::dev - Rust -
    pub struct Notification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<i64>,
    -    pub id: Option<i32>,
    +Notification in db_sqlx_postgres::dev - Rust

    Struct Notification

    pub struct Notification {
    +    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for Notification

    §

    fn clone(&self) -> Notification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Notification

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Notification

    §

    fn default() -> Notification

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Notification

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Notification, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    §

    impl PartialEq for Notification

    §

    fn eq(&self, other: &Notification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Notification

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Notification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.PerformanceAnalytics.html b/db_sqlx_postgres/dev/struct.PerformanceAnalytics.html index 83f73ecd..d9e7f1a2 100644 --- a/db_sqlx_postgres/dev/struct.PerformanceAnalytics.html +++ b/db_sqlx_postgres/dev/struct.PerformanceAnalytics.html @@ -1,39 +1,46 @@ -PerformanceAnalytics in db_sqlx_postgres::dev - Rust -
    pub struct PerformanceAnalytics {
    -    pub id: usize,
    -    pub time: u32,
    -    pub difficulty_factor: u32,
    -    pub worker_type: String,
    +PerformanceAnalytics in db_sqlx_postgres::dev - Rust

    Struct PerformanceAnalytics

    pub struct PerformanceAnalytics {
    +    pub id: usize,
    +    pub time: u32,
    +    pub difficulty_factor: u32,
    +    pub worker_type: String,
     }
    Expand description

    Proof-of-Work CAPTCHA performance analytics

    -

    Fields§

    §id: usize

    log ID

    -
    §time: u32

    time taken to generate proof

    -
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    -
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    -

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( +

    Fields§

    §id: usize

    log ID

    +
    §time: u32

    time taken to generate proof

    +
    §difficulty_factor: u32

    difficulty factor for which the proof was generated

    +
    §worker_type: String

    worker/client type: wasm, javascript, python, etc.

    +

    Trait Implementations§

    §

    impl Clone for PerformanceAnalytics

    §

    fn clone(&self) -> PerformanceAnalytics

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for PerformanceAnalytics

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for PerformanceAnalytics

    §

    fn default() -> PerformanceAnalytics

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for PerformanceAnalytics

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<PerformanceAnalytics, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for PerformanceAnalytics

    §

    fn eq(&self, other: &PerformanceAnalytics) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for PerformanceAnalytics

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for PerformanceAnalytics

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 c8ed4b92..1f637160 100644 --- a/db_sqlx_postgres/dev/struct.Register.html +++ b/db_sqlx_postgres/dev/struct.Register.html @@ -1,40 +1,47 @@ -Register in db_sqlx_postgres::dev - Rust -
    pub struct Register<'a> {
    -    pub username: &'a str,
    -    pub secret: &'a str,
    -    pub hash: &'a str,
    -    pub email: Option<&'a str>,
    +Register in db_sqlx_postgres::dev - Rust

    Struct Register

    pub struct Register<'a> {
    +    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( +

    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§

    §

    impl<'a> Clone for Register<'a>

    §

    fn clone(&self) -> Register<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for Register<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for Register<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Register<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for Register<'a>

    §

    fn eq(&self, other: &Register<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for Register<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for Register<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Register<'a>

    §

    impl<'a> RefUnwindSafe for Register<'a>

    §

    impl<'a> Send for Register<'a>

    §

    impl<'a> Sync for Register<'a>

    §

    impl<'a> Unpin for Register<'a>

    §

    impl<'a> UnwindSafe for Register<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 fce43608..058019f7 100644 --- a/db_sqlx_postgres/dev/struct.Secret.html +++ b/db_sqlx_postgres/dev/struct.Secret.html @@ -1,33 +1,40 @@ -Secret in db_sqlx_postgres::dev - Rust -
    pub struct Secret {
    -    pub secret: String,
    +Secret in db_sqlx_postgres::dev - Rust

    Struct Secret

    pub struct Secret {
    +    pub secret: String,
     }
    Expand description

    datastructure representing a user’s secret

    -

    Fields§

    §secret: String

    user’s secret

    -

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( +

    Fields§

    §secret: String

    user’s secret

    +

    Trait Implementations§

    §

    impl Clone for Secret

    §

    fn clone(&self) -> Secret

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for Secret

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for Secret

    §

    fn default() -> Secret

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for Secret

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<Secret, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for Secret

    §

    fn eq(&self, other: &Secret) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for Secret

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for Secret

    Auto Trait Implementations§

    §

    impl Freeze for Secret

    §

    impl RefUnwindSafe for Secret

    §

    impl Send for Secret

    §

    impl Sync for Secret

    §

    impl Unpin for Secret

    §

    impl UnwindSafe for Secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 0aa743e0..ef4bf4e3 100644 --- a/db_sqlx_postgres/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/struct.StatsUnixTimestamp.html @@ -1,37 +1,44 @@ -StatsUnixTimestamp in db_sqlx_postgres::dev - Rust -
    pub struct StatsUnixTimestamp {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    +StatsUnixTimestamp in db_sqlx_postgres::dev - Rust

    Struct StatsUnixTimestamp

    pub struct StatsUnixTimestamp {
    +    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( +

    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§

    §

    impl Clone for StatsUnixTimestamp

    §

    fn clone(&self) -> StatsUnixTimestamp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for StatsUnixTimestamp

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for StatsUnixTimestamp

    §

    fn default() -> StatsUnixTimestamp

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for StatsUnixTimestamp

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<StatsUnixTimestamp, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for StatsUnixTimestamp

    §

    fn eq(&self, other: &StatsUnixTimestamp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for StatsUnixTimestamp

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for StatsUnixTimestamp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 50ac6a7d..0fde2e80 100644 --- a/db_sqlx_postgres/dev/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/struct.TrafficPattern.html @@ -1,37 +1,44 @@ -TrafficPattern in db_sqlx_postgres::dev - Rust -
    pub struct TrafficPattern {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    +TrafficPattern in db_sqlx_postgres::dev - Rust

    Struct TrafficPattern

    pub struct TrafficPattern {
    +    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>

    traffic that bought the user’s website down; optional

    -

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( +

    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>

    traffic that bought the user’s website down; optional

    +

    Trait Implementations§

    §

    impl Clone for TrafficPattern

    §

    fn clone(&self) -> TrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl Debug for TrafficPattern

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl Default for TrafficPattern

    §

    fn default() -> TrafficPattern

    Returns the “default value” for a type. Read more
    §

    impl<'de> Deserialize<'de> for TrafficPattern

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<TrafficPattern, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl PartialEq for TrafficPattern

    §

    fn eq(&self, other: &TrafficPattern) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl Serialize for TrafficPattern

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl StructuralPartialEq for TrafficPattern

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 4f7dda79..b23fe6fd 100644 --- a/db_sqlx_postgres/dev/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/struct.UpdateEmail.html @@ -1,36 +1,43 @@ -UpdateEmail in db_sqlx_postgres::dev - Rust -
    pub struct UpdateEmail<'a> {
    -    pub username: &'a str,
    -    pub new_email: &'a str,
    +UpdateEmail in db_sqlx_postgres::dev - Rust

    Struct UpdateEmail

    pub struct UpdateEmail<'a> {
    +    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§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where - 'de: 'a,

    §

    fn deserialize<__D>( - __deserializer: __D -) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( +

    Fields§

    §username: &'a str

    username of the user

    +
    §new_email: &'a str

    new email address of the user

    +

    Trait Implementations§

    §

    impl<'a> Clone for UpdateEmail<'a>

    §

    fn clone(&self) -> UpdateEmail<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    §

    impl<'a> Debug for UpdateEmail<'a>

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    §

    impl<'de, 'a> Deserialize<'de> for UpdateEmail<'a>
    where + 'de: 'a,

    §

    fn deserialize<__D>( + __deserializer: __D, +) -> Result<UpdateEmail<'a>, <__D as Deserializer<'de>>::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    §

    impl<'a> PartialEq for UpdateEmail<'a>

    §

    fn eq(&self, other: &UpdateEmail<'a>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    §

    impl<'a> Serialize for UpdateEmail<'a>

    §

    fn serialize<__S>( &self, - __serializer: __S -) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + __serializer: __S, +) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
    where + __S: Serializer,
    Serialize this value into the given Serde serializer. Read more
    §

    impl<'a> StructuralPartialEq for UpdateEmail<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for UpdateEmail<'a>

    §

    impl<'a> RefUnwindSafe for UpdateEmail<'a>

    §

    impl<'a> Send for UpdateEmail<'a>

    §

    impl<'a> Sync for UpdateEmail<'a>

    §

    impl<'a> Unpin for UpdateEmail<'a>

    §

    impl<'a> UnwindSafe for UpdateEmail<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/tests/constant.LEVELS.html b/db_sqlx_postgres/dev/tests/constant.LEVELS.html index abd9cd75..d3ed7cd9 100644 --- a/db_sqlx_postgres/dev/tests/constant.LEVELS.html +++ b/db_sqlx_postgres/dev/tests/constant.LEVELS.html @@ -1,3 +1,2 @@ -LEVELS in db_sqlx_postgres::dev::tests - Rust -

    Constant db_sqlx_postgres::dev::tests::LEVELS

    pub const LEVELS: [Level; 3];
    Expand description

    levels for complex captcha config

    +LEVELS in db_sqlx_postgres::dev::tests - Rust

    Constant LEVELS

    pub const LEVELS: [Level; 3];
    Expand description

    levels for complex captcha config

    \ No newline at end of file diff --git a/db_sqlx_postgres/dev/tests/constant.TRAFFIC_PATTERN.html b/db_sqlx_postgres/dev/tests/constant.TRAFFIC_PATTERN.html index 4b552a6b..4038469d 100644 --- a/db_sqlx_postgres/dev/tests/constant.TRAFFIC_PATTERN.html +++ b/db_sqlx_postgres/dev/tests/constant.TRAFFIC_PATTERN.html @@ -1,3 +1,2 @@ -TRAFFIC_PATTERN in db_sqlx_postgres::dev::tests - Rust -
    pub const TRAFFIC_PATTERN: TrafficPattern;
    Expand description

    easy traffic pattern

    +TRAFFIC_PATTERN in db_sqlx_postgres::dev::tests - Rust

    Constant TRAFFIC_PATTERN

    pub const TRAFFIC_PATTERN: TrafficPattern;
    Expand description

    easy traffic pattern

    \ 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 e2ee0eea..6cf6099a 100644 --- a/db_sqlx_postgres/dev/tests/fn.database_works.html +++ b/db_sqlx_postgres/dev/tests/fn.database_works.html @@ -1,11 +1,10 @@ -database_works in db_sqlx_postgres::dev::tests - Rust -
    pub async fn database_works<T, 'a>(
    -    db: &T,
    +database_works in db_sqlx_postgres::dev::tests - Rust

    Function database_works

    pub async fn database_works<'a, T>(
    +    db: &T,
         p: &Register<'a>,
         c: &CreateCaptcha<'a>,
    -    l: &[Level],
    +    l: &[Level],
         tp: &TrafficPattern,
    -    an: &AddNotification<'a>
    +    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 90201d5c..5aa8ca86 100644 --- a/db_sqlx_postgres/dev/tests/index.html +++ b/db_sqlx_postgres/dev/tests/index.html @@ -1,3 +1,2 @@ -db_sqlx_postgres::dev::tests - Rust -

    Module db_sqlx_postgres::dev::tests

    Expand description

    Test utilities

    -

    Constants§

    Functions§

    \ No newline at end of file +db_sqlx_postgres::dev::tests - Rust

    Module tests

    Expand description

    Test utilities

    +

    Constants§

    LEVELS
    levels for complex captcha config
    TRAFFIC_PATTERN
    easy traffic pattern

    Functions§

    database_works
    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 6834f683..1de06f3e 100644 --- a/db_sqlx_postgres/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/trait.CloneSPDatabase.html @@ -1,8 +1,7 @@ -CloneSPDatabase in db_sqlx_postgres::dev - Rust -
    pub trait CloneSPDatabase {
    +CloneSPDatabase in db_sqlx_postgres::dev - Rust

    Trait CloneSPDatabase

    pub trait CloneSPDatabase {
         // Required method
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +    fn clone_db(&self) -> Box<dyn MCDatabase>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    +

    Required Methods§

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB

    Implementors§

    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    \ No newline at end of file + T: MCDatabase + Clone + 'static,
    \ 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 b7675257..8566c647 100644 --- a/db_sqlx_postgres/dev/trait.Connect.html +++ b/db_sqlx_postgres/dev/trait.Connect.html @@ -1,17 +1,16 @@ -Connect in db_sqlx_postgres::dev - Rust -
    pub trait Connect {
    +Connect in db_sqlx_postgres::dev - Rust

    Trait Connect

    pub trait Connect {
         type Pool: MCDatabase;
     
         // Required method
         fn connect<'async_trait>(
    -        self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    +        self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
            where Self: 'async_trait;
     }
    Expand description

    Create database connection

    Required Associated Types§

    type Pool: MCDatabase

    database specific pool-type

    Required Methods§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where + self, +) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type create connection pool

    -

    Implementors§

    \ No newline at end of file +

    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 54caa91f..000a27fd 100644 --- a/db_sqlx_postgres/dev/trait.DBOps.html +++ b/db_sqlx_postgres/dev/trait.DBOps.html @@ -1,3 +1,2 @@ -DBOps in db_sqlx_postgres::dev - Rust -
    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    +DBOps in db_sqlx_postgres::dev - Rust

    Trait DBOps

    pub trait DBOps: GetConnection + Migrate { }
    Expand description

    Database operations trait(migrations, pool creation and fetching connection from pool)

    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 4aa810cb..53ebbc0b 100644 --- a/db_sqlx_postgres/dev/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/trait.GetConnection.html @@ -1,18 +1,17 @@ -GetConnection in db_sqlx_postgres::dev - Rust -
    pub trait GetConnection {
    +GetConnection in db_sqlx_postgres::dev - Rust

    Trait GetConnection

    pub trait GetConnection {
         type Conn;
     
         // Required method
         fn get_conn<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    Get database connection

    Required Associated Types§

    type Conn

    database connection type

    Required Methods§

    fn get_conn<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type get connection from connection pool

    diff --git a/db_sqlx_postgres/dev/trait.MCDatabase.html b/db_sqlx_postgres/dev/trait.MCDatabase.html index 03018313..a4fe4bc7 100644 --- a/db_sqlx_postgres/dev/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/trait.MCDatabase.html @@ -1,139 +1,141 @@ -MCDatabase in db_sqlx_postgres::dev - Rust -
    pub trait MCDatabase: Send + Sync + CloneSPDatabase {
    +MCDatabase in db_sqlx_postgres::dev - Rust

    Trait MCDatabase

    pub trait MCDatabase:
    +    Send
    +    + Sync
    +    + CloneSPDatabase {
     
    Show 49 methods // Required methods fn ping<'life0, 'async_trait>( - &'life0 self - ) -> Pin<Box<dyn Future<Output = bool> + Send + '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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 Register<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<Option<String>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + 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 = Result<bool, DBError>> + Send + 'async_trait>> + email: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 UpdateEmail<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<NameHash, DBError>> + Send + 'async_trait>> + l: &'life1 Login<'_>, + ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 NameHash, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + current: &'life1 str, + new: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Secret, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + secret: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Captcha, DBError>> + Send + 'async_trait>> + username: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + 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 = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -141,10 +143,10 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -152,53 +154,53 @@ 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>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Level>, DBError>> + Send + 'async_trait>> + username: Option<&'life1 str>, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + 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 = Result<i32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -206,325 +208,325 @@ 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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>> where 'life0: '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>> + username: &'life1 str, + captcha_key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + p: &'life1 AddNotification<'_>, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<Notification>, DBError>> + Send + 'async_trait>> + username: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + username: &'life1 str, + id: i32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<(), DBError>> + Send + 'async_trait>> + key: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + 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 = Result<Vec<i64>, DBError>> + Send + 'async_trait>> + user: &'life1 str, + key: &'life2 str, + ) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait; fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + limit: usize, + offset: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + captcha_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> + psuedo_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize - ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> + page: usize, + ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 - ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, + ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 - ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> + captcha_key: &'life1 str, + difficulty_factor: u32, + ) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 - ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> + duration: u32, + ) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 - ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> + duration: u32, + location: u32, + ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; // Provided method fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str - ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> + campaign_id: &'life1 str, + ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait { ... }
    }
    Expand description

    mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

    Required Methods§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    ping DB

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    register a new user

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    delete a user

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if username exists

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get user email

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    check if email exists

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update a user’s email

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s password

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    update user’s password

    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>>
    where + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update username

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get a user’s secret from a captcha key

    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>>
    where + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update a user’s secret

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    create new captcha

    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>>
    where + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha config

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get all captchas belonging to user

    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>>
    where + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    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>>
    where + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -532,10 +534,10 @@ trait.

    Self: 'async_trait,

    update captcha key; doesn’t change metadata

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -543,53 +545,53 @@ trait.

    Self: 'async_trait,

    Add levels to captcha

    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>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    check if captcha exists

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete all levels of a captcha

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete captcha

    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>, DBError>> + Send + 'async_trait>>
    where + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Level>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get captcha levels

    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>>
    where + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get captcha’s cooldown period

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, @@ -597,187 +599,187 @@ trait.

    Self: 'async_trait,

    Add traffic configuration

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Get traffic configuration

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<EasyCaptcha>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all easy captcha configurations on instance

    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>>
    where + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    Delete traffic configuration

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    create new notification

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    get all unread notifications

    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>>
    where + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    mark a notification read

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig fetches

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig solves

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    record PoWConfig confirms

    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>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig fetches

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig solves

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - user: &'life1 str, - key: &'life2 str -) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = Result<Vec<i64>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    fetch PoWConfig confirms

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

    record PoW timing

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<PerformanceAnalytics>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    fetch PoW analytics

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get psuedo ID from campaign ID

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<String, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get campaign ID from psuedo ID

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Delete all records for campaign

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get all psuedo IDs

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Track maximum nonce received against captcha levels

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = Result<u32, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = Result<usize, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get number of analytics entries that are under a certain duration

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = Result<Option<usize>, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    Provided Methods§

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID

    -

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    Implementors§

    \ No newline at end of file +

    Trait Implementations§

    §

    impl Clone for Box<dyn MCDatabase>

    §

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more

    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 39f79d82..2799d57d 100644 --- a/db_sqlx_postgres/dev/trait.Migrate.html +++ b/db_sqlx_postgres/dev/trait.Migrate.html @@ -1,16 +1,15 @@ -Migrate in db_sqlx_postgres::dev - Rust -
    pub trait Migrate: MCDatabase {
    +Migrate in db_sqlx_postgres::dev - Rust

    Trait Migrate

    pub trait Migrate: MCDatabase {
         // Required method
         fn migrate<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
            where 'life0: 'async_trait,
                  Self: 'async_trait;
     }
    Expand description

    database migrations

    Required Methods§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, Self: 'async_trait,

    database specific error-type run migrations

    -

    Implementors§

    \ No newline at end of file +

    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 080f6f30..f15ee36e 100644 --- a/db_sqlx_postgres/dev/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/type.BoxDynError.html @@ -1,3 +1,2 @@ -BoxDynError in db_sqlx_postgres::dev - Rust -

    Type Alias db_sqlx_postgres::dev::BoxDynError

    pub type BoxDynError = Box<dyn Error + Send + Sync>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    -

    Aliased Type§

    struct BoxDynError(/* private fields */);
    \ No newline at end of file +BoxDynError in db_sqlx_postgres::dev - Rust

    Type Alias BoxDynError

    pub type BoxDynError = Box<dyn Error + Sync + Send>;
    Expand description

    Convenience type alias for grouping driver-specific errors

    +

    Aliased Type§

    pub struct BoxDynError(/* private fields */);
    \ 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 c385af1d..d7de57d9 100644 --- a/db_sqlx_postgres/dev/type.DBResult.html +++ b/db_sqlx_postgres/dev/type.DBResult.html @@ -1,8 +1,7 @@ -DBResult in db_sqlx_postgres::dev - Rust -

    Type Alias db_sqlx_postgres::dev::DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    -

    Aliased Type§

    enum DBResult<V> {
    +DBResult in db_sqlx_postgres::dev - Rust

    Type Alias DBResult

    pub type DBResult<V> = Result<V, DBError>;
    Expand description

    Generic result data structure

    +

    Aliased Type§

    pub enum DBResult<V> {
         Ok(V),
         Err(DBError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    §1.0.0

    Err(DBError)

    Contains the error value

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/db_sqlx_postgres/enum.ConnectionOptions.html b/db_sqlx_postgres/enum.ConnectionOptions.html index 9cd65864..65a7efc9 100644 --- a/db_sqlx_postgres/enum.ConnectionOptions.html +++ b/db_sqlx_postgres/enum.ConnectionOptions.html @@ -1,28 +1,35 @@ -ConnectionOptions in db_sqlx_postgres - Rust -
    pub enum ConnectionOptions {
    +ConnectionOptions in db_sqlx_postgres - Rust

    Enum ConnectionOptions

    Source
    pub enum ConnectionOptions {
         Fresh(Fresh),
         Existing(Conn),
     }
    Expand description

    Connect to database

    Variants§

    §

    Fresh(Fresh)

    fresh connection

    §

    Existing(Conn)

    existing connection

    -

    Trait Implementations§

    source§

    impl Connect for ConnectionOptions

    §

    type Pool = Database

    database specific pool-type
    source§

    fn connect<'async_trait>( - self -) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where +

    Trait Implementations§

    Source§

    impl Connect for ConnectionOptions

    Source§

    type Pool = Database

    database specific pool-type
    Source§

    fn connect<'async_trait>( + self, +) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where Self: 'async_trait,

    database specific error-type -create connection pool

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +create connection pool

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 4c9cacca..d9408bfc 100644 --- a/db_sqlx_postgres/errors/fn.map_register_err.html +++ b/db_sqlx_postgres/errors/fn.map_register_err.html @@ -1,3 +1,2 @@ -map_register_err in db_sqlx_postgres::errors - Rust -
    pub fn map_register_err(e: Error) -> DBError
    Expand description

    map postgres errors to DBError types

    +map_register_err in db_sqlx_postgres::errors - Rust

    Function map_register_err

    Source
    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 0e7af0f9..e6c21362 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 @@ -1,3 +1,2 @@ -map_row_not_found_err in db_sqlx_postgres::errors - Rust -
    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

    +map_row_not_found_err in db_sqlx_postgres::errors - Rust

    Function map_row_not_found_err

    Source
    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 a0b5bc00..372860bf 100644 --- a/db_sqlx_postgres/errors/index.html +++ b/db_sqlx_postgres/errors/index.html @@ -1,3 +1,2 @@ -db_sqlx_postgres::errors - Rust -
    Expand description

    Error-handling utilities

    -

    Functions§

    \ No newline at end of file +db_sqlx_postgres::errors - Rust

    Module errors

    Source
    Expand description

    Error-handling utilities

    +

    Functions§

    map_register_err
    map postgres errors to DBError types
    map_row_not_found_err
    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 f2613204..41f66bc6 100644 --- a/db_sqlx_postgres/index.html +++ b/db_sqlx_postgres/index.html @@ -1,3 +1 @@ -db_sqlx_postgres - Rust -

    Crate db_sqlx_postgres

    source ·

    Modules§

    Structs§

    Enums§

    \ No newline at end of file +db_sqlx_postgres - Rust

    Crate db_sqlx_postgres

    Source

    Modules§

    dev
    errors
    Error-handling utilities
    prelude

    Structs§

    Conn
    Use an existing database pool
    Database
    Fresh
    InnerNotification
    Represents notification

    Enums§

    ConnectionOptions
    Connect to database
    \ No newline at end of file diff --git a/db_sqlx_postgres/prelude/index.html b/db_sqlx_postgres/prelude/index.html index e0d63906..09d7a243 100644 --- a/db_sqlx_postgres/prelude/index.html +++ b/db_sqlx_postgres/prelude/index.html @@ -1,2 +1 @@ -db_sqlx_postgres::prelude - Rust -

    Re-exports§

    \ No newline at end of file +db_sqlx_postgres::prelude - Rust

    Module prelude

    Source

    Re-exports§

    pub use super::*;
    \ No newline at end of file diff --git a/db_sqlx_postgres/struct.Conn.html b/db_sqlx_postgres/struct.Conn.html index a9ce0f4f..032e988b 100644 --- a/db_sqlx_postgres/struct.Conn.html +++ b/db_sqlx_postgres/struct.Conn.html @@ -1,19 +1,26 @@ -Conn in db_sqlx_postgres - Rust -

    Struct db_sqlx_postgres::Conn

    source ·
    pub struct Conn(pub PgPool);
    Expand description

    Use an existing database pool

    -

    Tuple Fields§

    §0: PgPool

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Conn

    §

    impl Send for Conn

    §

    impl Sync for Conn

    §

    impl Unpin for Conn

    §

    impl !UnwindSafe for Conn

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Conn in db_sqlx_postgres - Rust

    Struct Conn

    Source
    pub struct Conn(pub PgPool);
    Expand description

    Use an existing database pool

    +

    Tuple Fields§

    §0: PgPool

    Auto Trait Implementations§

    §

    impl Freeze for Conn

    §

    impl !RefUnwindSafe for Conn

    §

    impl Send for Conn

    §

    impl Sync for Conn

    §

    impl Unpin for Conn

    §

    impl !UnwindSafe for Conn

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/struct.Database.html b/db_sqlx_postgres/struct.Database.html index 8a9467e6..a4dd6dde 100644 --- a/db_sqlx_postgres/struct.Database.html +++ b/db_sqlx_postgres/struct.Database.html @@ -1,413 +1,421 @@ -Database in db_sqlx_postgres - Rust -
    pub struct Database {
    +Database in db_sqlx_postgres - Rust

    Struct Database

    Source
    pub struct Database {
         pub pool: PgPool,
    -}

    Fields§

    §pool: PgPool

    Trait Implementations§

    source§

    impl Clone for Database

    source§

    fn clone(&self) -> Database

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl MCDatabase for Database

    source§

    fn ping<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where +}

    Fields§

    §pool: PgPool

    Trait Implementations§

    Source§

    impl Clone for Database

    Source§

    fn clone(&self) -> Database

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl MCDatabase for Database

    Source§

    fn ping<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    ping DB

    -
    source§

    fn register<'life0, 'life1, 'async_trait>( +

    Source§

    fn register<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 Register<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 Register<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    register a new user

    -
    source§

    fn delete_user<'life0, 'life1, 'async_trait>( +

    Source§

    fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    delete a user

    -
    source§

    fn username_exists<'life0, 'life1, 'async_trait>( +

    Source§

    fn username_exists<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    check if username exists

    -
    source§

    fn get_email<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_email<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get user email

    -
    source§

    fn email_exists<'life0, 'life1, 'async_trait>( +

    Source§

    fn email_exists<'life0, 'life1, 'async_trait>( &'life0 self, - email: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where + email: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    check if email exists

    -
    source§

    fn update_email<'life0, 'life1, 'async_trait>( +

    Source§

    fn update_email<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 UpdateEmail<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 UpdateEmail<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    update a user’s email

    -
    source§

    fn get_password<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_password<'life0, 'life1, 'async_trait>( &'life0 self, - l: &'life1 Login<'_> -) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where + l: &'life1 Login<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s password

    -
    source§

    fn update_password<'life0, 'life1, 'async_trait>( +

    Source§

    fn update_password<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 NameHash -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 NameHash, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    update user’s password

    -
    source§

    fn update_username<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + current: &'life1 str, + new: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update username

    -
    source§

    fn get_secret<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, - username: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s secret

    -
    source§

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_secret_from_captcha<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get a user’s secret from a captcha key

    -
    source§

    fn update_secret<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + secret: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update a user’s secret

    -
    source§

    fn create_captcha<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    create new captcha

    -
    source§

    fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get captcha config

    -
    source§

    fn get_all_user_captchas<'life0, 'life1, 'async_trait>( +

    Source§

    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 + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get all captchas belonging to user

    -
    source§

    fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + p: &'life2 CreateCaptcha<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    update captcha metadata; doesn’t change captcha key

    -
    source§

    fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + old_key: &'life2 str, + new_key: &'life3 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    update captcha key; doesn’t change metadata

    -
    source§

    fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, + levels: &'life3 [Level], +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    Add levels to captcha

    -
    source§

    fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    check if captcha exists

    -
    source§

    fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete all levels of a captcha

    -
    source§

    fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete captcha

    -
    source§

    fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: Option<&'life1 str>, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get captcha levels

    -
    source§

    fn get_captcha_cooldown<'life0, 'life1, 'async_trait>( +

    Source§

    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 + captcha_key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get captcha’s cooldown period

    -
    source§

    fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, + pattern: &'life3 TrafficPattern, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    Add traffic configuration

    -
    source§

    fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Get traffic configuration

    -
    source§

    fn get_all_easy_captchas<'life0, 'async_trait>( +

    Source§

    fn get_all_easy_captchas<'life0, 'async_trait>( &'life0 self, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>
    where + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get all easy captcha configurations on instance

    -
    source§

    fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + captcha_key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    Delete traffic configuration

    -
    source§

    fn create_notification<'life0, 'life1, 'async_trait>( +

    Source§

    fn create_notification<'life0, 'life1, 'async_trait>( &'life0 self, - p: &'life1 AddNotification<'_> -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + p: &'life1 AddNotification<'_>, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    create new notification

    -
    source§

    fn get_all_unread_notifications<'life0, 'life1, 'async_trait>( +

    Source§

    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 + username: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    get all unread notifications

    -
    source§

    fn mark_notification_read<'life0, 'life1, 'async_trait>( +

    Source§

    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 + username: &'life1 str, + id: i32, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    mark a notification read

    -
    source§

    fn record_fetch<'life0, 'life1, 'async_trait>( +

    Source§

    fn record_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig fetches

    -
    source§

    fn record_solve<'life0, 'life1, 'async_trait>( +

    Source§

    fn record_solve<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig solves

    -
    source§

    fn record_confirm<'life0, 'life1, 'async_trait>( +

    Source§

    fn record_confirm<'life0, 'life1, 'async_trait>( &'life0 self, - key: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + key: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    record PoWConfig confirms

    -
    source§

    fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig fetches

    -
    source§

    fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig solves

    -
    source§

    fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + user: &'life1 str, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    fetch PoWConfig confirms

    -
    source§

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    fn analysis_save<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - d: &'life2 CreatePerformanceAnalytics -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + d: &'life2 CreatePerformanceAnalytics, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoW timing

    -
    source§

    fn analytics_fetch<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_fetch<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str, - limit: usize, - offset: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, + limit: usize, + offset: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    fetch PoW analytics

    -
    source§

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Create psuedo ID against campaign ID to publish analytics

    -
    source§

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where + captcha_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get psuedo ID from campaign ID

    -
    source§

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>( &'life0 self, - psuedo_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where + psuedo_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get campaign ID from psuedo ID

    -
    source§

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( +

    Source§

    fn analytics_get_all_psuedo_ids<'life0, 'async_trait>( &'life0 self, - page: usize -) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>
    where + page: usize, +) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get all psuedo IDs

    -
    source§

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( +

    Source§

    fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32, - latest_nonce: u32 -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, + latest_nonce: u32, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Track maximum nonce received against captcha levels

    -
    source§

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( +

    Source§

    fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>( &'life0 self, - captcha_key: &'life1 str, - difficulty_factor: u32 -) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>
    where + captcha_key: &'life1 str, + difficulty_factor: u32, +) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Get maximum nonce tracked so far for captcha levels

    -
    source§

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( +

    Source§

    fn stats_get_num_logs_under_time<'life0, 'async_trait>( &'life0 self, - duration: u32 -) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>
    where + duration: u32, +) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get number of analytics entries that are under a certain duration

    -
    source§

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( +

    Source§

    fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>( &'life0 self, - duration: u32, - location: u32 -) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>
    where + duration: u32, + location: u32, +) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order

    -
    source§

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( +

    Source§

    fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

    Delete all records for campaign
    §

    fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>( &'life0 self, - campaign_id: &'life1 str -) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where + campaign_id: &'life1 str, +) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait>>
    where 'life0: 'async_trait, 'life1: 'async_trait, - Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID
    source§

    impl Migrate for Database

    source§

    fn migrate<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + Self: 'async_trait,

    Get publishing status of pow analytics for captcha ID/ campaign ID
    Source§

    impl Migrate for Database

    Source§

    fn migrate<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    database specific error-type -run migrations

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CloneSPDatabase for T
    where - T: MCDatabase + Clone + 'static,

    §

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +run migrations

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CloneSPDatabase for T
    where + T: MCDatabase + Clone + 'static,

    §

    fn clone_db(&self) -> Box<dyn MCDatabase>

    clone DB
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/struct.Fresh.html b/db_sqlx_postgres/struct.Fresh.html index 3cadad44..96f7b492 100644 --- a/db_sqlx_postgres/struct.Fresh.html +++ b/db_sqlx_postgres/struct.Fresh.html @@ -1,22 +1,29 @@ -Fresh in db_sqlx_postgres - Rust -

    Struct db_sqlx_postgres::Fresh

    source ·
    pub struct Fresh {
    +Fresh in db_sqlx_postgres - Rust

    Struct Fresh

    Source
    pub struct Fresh {
         pub pool_options: PgPoolOptions,
    -    pub disable_logging: bool,
    -    pub url: String,
    -}

    Fields§

    §pool_options: PgPoolOptions§disable_logging: bool§url: String

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Fresh

    §

    impl Send for Fresh

    §

    impl Sync for Fresh

    §

    impl Unpin for Fresh

    §

    impl !UnwindSafe for Fresh

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + pub disable_logging: bool, + pub url: String, +}

    Fields§

    §pool_options: PgPoolOptions§disable_logging: bool§url: String

    Auto Trait Implementations§

    §

    impl Freeze for Fresh

    §

    impl !RefUnwindSafe for Fresh

    §

    impl Send for Fresh

    §

    impl Sync for Fresh

    §

    impl Unpin for Fresh

    §

    impl !UnwindSafe for Fresh

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/db_sqlx_postgres/struct.InnerNotification.html b/db_sqlx_postgres/struct.InnerNotification.html index 5880c2b8..d51289b3 100644 --- a/db_sqlx_postgres/struct.InnerNotification.html +++ b/db_sqlx_postgres/struct.InnerNotification.html @@ -1,33 +1,40 @@ -InnerNotification in db_sqlx_postgres - Rust -
    pub struct InnerNotification {
    -    pub name: Option<String>,
    -    pub heading: Option<String>,
    -    pub message: Option<String>,
    -    pub received: Option<OffsetDateTime>,
    -    pub id: Option<i32>,
    +InnerNotification in db_sqlx_postgres - Rust

    Struct InnerNotification

    Source
    pub struct InnerNotification {
    +    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§

    source§

    impl Clone for InnerNotification

    source§

    fn clone(&self) -> InnerNotification

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for InnerNotification

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for InnerNotification

    source§

    fn default() -> InnerNotification

    Returns the “default value” for a type. Read more
    source§

    impl From<InnerNotification> for Notification

    source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for InnerNotification

    source§

    fn eq(&self, other: &InnerNotification) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl StructuralPartialEq for InnerNotification

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Clone for InnerNotification

    Source§

    fn clone(&self) -> InnerNotification

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for InnerNotification

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for InnerNotification

    Source§

    fn default() -> InnerNotification

    Returns the “default value” for a type. Read more
    Source§

    impl From<InnerNotification> for Notification

    Source§

    fn from(n: InnerNotification) -> Self

    Converts to this type from the input type.
    Source§

    impl PartialEq for InnerNotification

    Source§

    fn eq(&self, other: &InnerNotification) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl StructuralPartialEq for InnerNotification

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/help.html b/help.html index 99b3525a..037da20c 100644 --- a/help.html +++ b/help.html @@ -1,2 +1 @@ -Help -

    Rustdoc help

    Back
    \ No newline at end of file +Help

    Rustdoc help

    Back
    \ No newline at end of file diff --git a/mcaptcha/all.html b/mcaptcha/all.html index 85e3ebb4..c5bdeaa2 100644 --- a/mcaptcha/all.html +++ b/mcaptcha/all.html @@ -1,2 +1 @@ -List of all items in this crate -

    List of all items

    Structs

    Enums

    Traits

    Macros

    Functions

    Type Aliases

    Constants

    \ No newline at end of file +List of all items in this crate

    List of all items

    Structs

    Enums

    Traits

    Macros

    Functions

    Type Aliases

    Constants

    \ No newline at end of file diff --git a/mcaptcha/api/index.html b/mcaptcha/api/index.html index c515ea70..5f62667b 100644 --- a/mcaptcha/api/index.html +++ b/mcaptcha/api/index.html @@ -1,2 +1 @@ -mcaptcha::api - Rust -

    Module mcaptcha::api

    source ·

    Modules§

    \ No newline at end of file +mcaptcha::api - Rust

    Module api

    Source

    Modules§

    v1
    \ 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 8b63c87d..69105c1d 100644 --- a/mcaptcha/api/v1/account/delete/fn.services.html +++ b/mcaptcha/api/v1/account/delete/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::account::delete - Rust -

    Function mcaptcha::api::v1::account::delete::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::account::delete - Rust

    Function 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 028d9265..62d76b9c 100644 --- a/mcaptcha/api/v1/account/delete/index.html +++ b/mcaptcha/api/v1/account/delete/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::delete - Rust -

    Module mcaptcha::api::v1::account::delete

    source ·

    Modules§

    Structs§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::account::delete - Rust

    Module delete

    Source

    Modules§

    runners

    Structs§

    delete_account

    Functions§

    services
    \ 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 4ac20f7a..4b6e6234 100644 --- a/mcaptcha/api/v1/account/delete/runners/fn.delete_user.html +++ b/mcaptcha/api/v1/account/delete/runners/fn.delete_user.html @@ -1,2 +1 @@ -delete_user in mcaptcha::api::v1::account::delete::runners - Rust -
    pub async fn delete_user(name: &str, data: &AppData) -> Result<(), ServiceError>
    \ No newline at end of file +delete_user in mcaptcha::api::v1::account::delete::runners - Rust

    Function 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 c688ce7a..71a632d3 100644 --- a/mcaptcha/api/v1/account/delete/runners/index.html +++ b/mcaptcha/api/v1/account/delete/runners/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::delete::runners - Rust -
    \ No newline at end of file +mcaptcha::api::v1::account::delete::runners - Rust

    Module runners

    Source

    Functions§

    delete_user
    \ 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 87d7fc08..4be2a618 100644 --- a/mcaptcha/api/v1/account/delete/struct.delete_account.html +++ b/mcaptcha/api/v1/account/delete/struct.delete_account.html @@ -1,18 +1,32 @@ -delete_account in mcaptcha::api::v1::account::delete - Rust -
    pub struct delete_account;

    Trait Implementations§

    source§

    impl HttpServiceFactory for delete_account

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +delete_account in mcaptcha::api::v1::account::delete - Rust

    Struct delete_account

    Source
    pub struct delete_account;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for delete_account

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 4bbc6d89..ea3ee54c 100644 --- a/mcaptcha/api/v1/account/email/fn.services.html +++ b/mcaptcha/api/v1/account/email/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::account::email - Rust -

    Function mcaptcha::api::v1::account::email::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::account::email - Rust

    Function 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 0656711d..c2717fa4 100644 --- a/mcaptcha/api/v1/account/email/index.html +++ b/mcaptcha/api/v1/account/email/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::email - Rust -

    Module mcaptcha::api::v1::account::email

    source ·

    Structs§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::account::email - Rust

    Module email

    Source

    Structs§

    Email
    email_exists
    set_email
    update email

    Functions§

    services
    \ 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 e403d8a8..54b7015b 100644 --- a/mcaptcha/api/v1/account/email/struct.Email.html +++ b/mcaptcha/api/v1/account/email/struct.Email.html @@ -1,24 +1,45 @@ -Email in mcaptcha::api::v1::account::email - Rust -

    Struct mcaptcha::api::v1::account::email::Email

    source ·
    pub struct Email {
    -    pub email: String,
    -}

    Fields§

    §email: String

    Trait Implementations§

    source§

    impl Clone for Email

    source§

    fn clone(&self) -> Email

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Email

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Email

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Email

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Email

    §

    impl Send for Email

    §

    impl Sync for Email

    §

    impl Unpin for Email

    §

    impl UnwindSafe for Email

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Email in mcaptcha::api::v1::account::email - Rust

    Struct Email

    Source
    pub struct Email {
    +    pub email: String,
    +}

    Fields§

    §email: String

    Trait Implementations§

    Source§

    impl Clone for Email

    Source§

    fn clone(&self) -> Email

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Email

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Email

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for Email

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Email

    §

    impl RefUnwindSafe for Email

    §

    impl Send for Email

    §

    impl Sync for Email

    §

    impl Unpin for Email

    §

    impl UnwindSafe for Email

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 ec8fb628..e757fb51 100644 --- a/mcaptcha/api/v1/account/email/struct.email_exists.html +++ b/mcaptcha/api/v1/account/email/struct.email_exists.html @@ -1,18 +1,32 @@ -email_exists in mcaptcha::api::v1::account::email - Rust -
    pub struct email_exists;

    Trait Implementations§

    source§

    impl HttpServiceFactory for email_exists

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +email_exists in mcaptcha::api::v1::account::email - Rust

    Struct email_exists

    Source
    pub struct email_exists;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for email_exists

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 c0023e19..973bec15 100644 --- a/mcaptcha/api/v1/account/email/struct.set_email.html +++ b/mcaptcha/api/v1/account/email/struct.set_email.html @@ -1,19 +1,33 @@ -set_email in mcaptcha::api::v1::account::email - Rust -
    pub struct set_email;
    Expand description

    update email

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for set_email

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +set_email in mcaptcha::api::v1::account::email - Rust

    Struct set_email

    Source
    pub struct set_email;
    Expand description

    update email

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for set_email

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 d7c388ec..6ff37b82 100644 --- a/mcaptcha/api/v1/account/fn.services.html +++ b/mcaptcha/api/v1/account/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::account - Rust -

    Function mcaptcha::api::v1::account::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::account - Rust

    Function 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 55da290d..7e638acd 100644 --- a/mcaptcha/api/v1/account/index.html +++ b/mcaptcha/api/v1/account/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account - Rust -

    Module mcaptcha::api::v1::account

    source ·

    Re-exports§

    Modules§

    Structs§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::account - Rust

    Module account

    Source

    Re-exports§

    pub use super::auth;
    pub use super::mcaptcha;

    Modules§

    delete
    email
    password
    routes
    secret
    username

    Structs§

    AccountCheckPayload
    AccountCheckResp

    Functions§

    services
    \ 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 4cfd114e..d15e4312 100644 --- a/mcaptcha/api/v1/account/password/fn.services.html +++ b/mcaptcha/api/v1/account/password/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::account::password - Rust -

    Function mcaptcha::api::v1::account::password::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::account::password - Rust

    Function 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 0cb77b8c..5d130577 100644 --- a/mcaptcha/api/v1/account/password/fn.update_password_runner.html +++ b/mcaptcha/api/v1/account/password/fn.update_password_runner.html @@ -1,6 +1,5 @@ -update_password_runner in mcaptcha::api::v1::account::password - Rust -
    async fn update_password_runner(
    -    user: &str,
    +update_password_runner in mcaptcha::api::v1::account::password - Rust

    Function update_password_runner

    Source
    async fn update_password_runner(
    +    user: &str,
         update: UpdatePassword,
    -    data: &Data
    -) -> Result<(), ServiceError>
    \ No newline at end of file + 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 ebdcb899..1896b202 100644 --- a/mcaptcha/api/v1/account/password/index.html +++ b/mcaptcha/api/v1/account/password/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::password - Rust -
    \ No newline at end of file +mcaptcha::api::v1::account::password - Rust
    \ 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 d280b60b..7ce5e659 100644 --- a/mcaptcha/api/v1/account/password/struct.ChangePasswordReqest.html +++ b/mcaptcha/api/v1/account/password/struct.ChangePasswordReqest.html @@ -1,26 +1,47 @@ -ChangePasswordReqest in mcaptcha::api::v1::account::password - Rust -
    pub struct ChangePasswordReqest {
    -    pub password: String,
    -    pub new_password: String,
    -    pub confirm_new_password: String,
    -}

    Fields§

    §password: String§new_password: String§confirm_new_password: String

    Trait Implementations§

    source§

    impl Clone for ChangePasswordReqest

    source§

    fn clone(&self) -> ChangePasswordReqest

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ChangePasswordReqest

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for ChangePasswordReqest

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<ChangePasswordReqest> for UpdatePassword

    source§

    fn from(s: ChangePasswordReqest) -> Self

    Converts to this type from the input type.
    source§

    impl Serialize for ChangePasswordReqest

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +ChangePasswordReqest in mcaptcha::api::v1::account::password - Rust

    Struct ChangePasswordReqest

    Source
    pub struct ChangePasswordReqest {
    +    pub password: String,
    +    pub new_password: String,
    +    pub confirm_new_password: String,
    +}

    Fields§

    §password: String§new_password: String§confirm_new_password: String

    Trait Implementations§

    Source§

    impl Clone for ChangePasswordReqest

    Source§

    fn clone(&self) -> ChangePasswordReqest

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for ChangePasswordReqest

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for ChangePasswordReqest

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<ChangePasswordReqest> for UpdatePassword

    Source§

    fn from(s: ChangePasswordReqest) -> Self

    Converts to this type from the input type.
    Source§

    impl Serialize for ChangePasswordReqest

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 0efe078d..4f8af295 100644 --- a/mcaptcha/api/v1/account/password/struct.UpdatePassword.html +++ b/mcaptcha/api/v1/account/password/struct.UpdatePassword.html @@ -1,21 +1,35 @@ -UpdatePassword in mcaptcha::api::v1::account::password - Rust -
    pub struct UpdatePassword {
    -    pub new_password: String,
    -    pub confirm_new_password: String,
    -}

    Fields§

    §new_password: String§confirm_new_password: String

    Trait Implementations§

    source§

    impl From<ChangePasswordReqest> for UpdatePassword

    source§

    fn from(s: ChangePasswordReqest) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +UpdatePassword in mcaptcha::api::v1::account::password - Rust

    Struct UpdatePassword

    Source
    pub struct UpdatePassword {
    +    pub new_password: String,
    +    pub confirm_new_password: String,
    +}

    Fields§

    §new_password: String§confirm_new_password: String

    Trait Implementations§

    Source§

    impl From<ChangePasswordReqest> for UpdatePassword

    Source§

    fn from(s: ChangePasswordReqest) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 75ca71b3..cbf995ff 100644 --- a/mcaptcha/api/v1/account/password/struct.update_user_password.html +++ b/mcaptcha/api/v1/account/password/struct.update_user_password.html @@ -1,18 +1,32 @@ -update_user_password in mcaptcha::api::v1::account::password - Rust -
    pub struct update_user_password;

    Trait Implementations§

    source§

    impl HttpServiceFactory for update_user_password

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +update_user_password in mcaptcha::api::v1::account::password - Rust

    Struct update_user_password

    Source
    pub struct update_user_password;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for update_user_password

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 509bbe3a..6c9ddbf8 100644 --- a/mcaptcha/api/v1/account/routes/index.html +++ b/mcaptcha/api/v1/account/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::routes - Rust -

    Module mcaptcha::api::v1::account::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::account::routes - Rust

    Module routes

    Source

    Structs§

    Account
    \ 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 72d2736e..97da6333 100644 --- a/mcaptcha/api/v1/account/routes/struct.Account.html +++ b/mcaptcha/api/v1/account/routes/struct.Account.html @@ -1,27 +1,41 @@ -Account in mcaptcha::api::v1::account::routes - Rust -

    Struct mcaptcha::api::v1::account::routes::Account

    source ·
    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 str§email_exists: &'static str§get_secret: &'static str§update_email: &'static str§update_password: &'static str§update_secret: &'static str§username_exists: &'static str§update_username: &'static str

    Implementations§

    source§

    impl Account

    source

    pub const fn new() -> Account

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Account in mcaptcha::api::v1::account::routes - Rust

    Struct Account

    Source
    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 str§email_exists: &'static str§get_secret: &'static str§update_email: &'static str§update_password: &'static str§update_secret: &'static str§username_exists: &'static str§update_username: &'static str

    Implementations§

    Source§

    impl Account

    Source

    pub const fn new() -> Account

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 91438314..f5e03b7b 100644 --- a/mcaptcha/api/v1/account/secret/fn.services.html +++ b/mcaptcha/api/v1/account/secret/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::account::secret - Rust -

    Function mcaptcha::api::v1::account::secret::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::account::secret - Rust

    Function 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 56026b4b..5e5f32bf 100644 --- a/mcaptcha/api/v1/account/secret/index.html +++ b/mcaptcha/api/v1/account/secret/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::secret - Rust -
    \ No newline at end of file +mcaptcha::api::v1::account::secret - Rust

    Module secret

    Source

    Structs§

    get_secret
    update_user_secret

    Functions§

    services
    \ 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 3d7d638d..2465a0be 100644 --- a/mcaptcha/api/v1/account/secret/struct.get_secret.html +++ b/mcaptcha/api/v1/account/secret/struct.get_secret.html @@ -1,18 +1,32 @@ -get_secret in mcaptcha::api::v1::account::secret - Rust -
    pub struct get_secret;

    Trait Implementations§

    source§

    impl HttpServiceFactory for get_secret

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +get_secret in mcaptcha::api::v1::account::secret - Rust

    Struct get_secret

    Source
    pub struct get_secret;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for get_secret

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 1d9ba69c..ff5107a8 100644 --- a/mcaptcha/api/v1/account/secret/struct.update_user_secret.html +++ b/mcaptcha/api/v1/account/secret/struct.update_user_secret.html @@ -1,18 +1,32 @@ -update_user_secret in mcaptcha::api::v1::account::secret - Rust -
    pub struct update_user_secret;

    Trait Implementations§

    source§

    impl HttpServiceFactory for update_user_secret

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +update_user_secret in mcaptcha::api::v1::account::secret - Rust

    Struct update_user_secret

    Source
    pub struct update_user_secret;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for update_user_secret

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 1424bf91..8268069a 100644 --- a/mcaptcha/api/v1/account/struct.AccountCheckPayload.html +++ b/mcaptcha/api/v1/account/struct.AccountCheckPayload.html @@ -1,24 +1,45 @@ -AccountCheckPayload in mcaptcha::api::v1::account - Rust -
    pub struct AccountCheckPayload {
    -    pub val: String,
    -}

    Fields§

    §val: String

    Trait Implementations§

    source§

    impl Clone for AccountCheckPayload

    source§

    fn clone(&self) -> AccountCheckPayload

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AccountCheckPayload

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for AccountCheckPayload

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for AccountCheckPayload

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +AccountCheckPayload in mcaptcha::api::v1::account - Rust

    Struct AccountCheckPayload

    Source
    pub struct AccountCheckPayload {
    +    pub val: String,
    +}

    Fields§

    §val: String

    Trait Implementations§

    Source§

    impl Clone for AccountCheckPayload

    Source§

    fn clone(&self) -> AccountCheckPayload

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for AccountCheckPayload

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for AccountCheckPayload

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for AccountCheckPayload

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 22d52f07..0dd76922 100644 --- a/mcaptcha/api/v1/account/struct.AccountCheckResp.html +++ b/mcaptcha/api/v1/account/struct.AccountCheckResp.html @@ -1,24 +1,45 @@ -AccountCheckResp in mcaptcha::api::v1::account - Rust -
    pub struct AccountCheckResp {
    -    pub exists: bool,
    -}

    Fields§

    §exists: bool

    Trait Implementations§

    source§

    impl Clone for AccountCheckResp

    source§

    fn clone(&self) -> AccountCheckResp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AccountCheckResp

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for AccountCheckResp

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for AccountCheckResp

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +AccountCheckResp in mcaptcha::api::v1::account - Rust

    Struct AccountCheckResp

    Source
    pub struct AccountCheckResp {
    +    pub exists: bool,
    +}

    Fields§

    §exists: bool

    Trait Implementations§

    Source§

    impl Clone for AccountCheckResp

    Source§

    fn clone(&self) -> AccountCheckResp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for AccountCheckResp

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for AccountCheckResp

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for AccountCheckResp

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 b49f0b70..a8e2da63 100644 --- a/mcaptcha/api/v1/account/username/fn.services.html +++ b/mcaptcha/api/v1/account/username/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::account::username - Rust -

    Function mcaptcha::api::v1::account::username::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::account::username - Rust

    Function 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 745b7316..8ddfe753 100644 --- a/mcaptcha/api/v1/account/username/index.html +++ b/mcaptcha/api/v1/account/username/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::username - Rust -

    Module mcaptcha::api::v1::account::username

    source ·

    Modules§

    Structs§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::account::username - Rust

    Module username

    Source

    Modules§

    runners

    Structs§

    Username
    set_username
    update username
    username_exists

    Functions§

    services
    \ 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 e194287e..5dc496fc 100644 --- a/mcaptcha/api/v1/account/username/runners/fn.username_exists.html +++ b/mcaptcha/api/v1/account/username/runners/fn.username_exists.html @@ -1,5 +1,4 @@ -username_exists in mcaptcha::api::v1::account::username::runners - Rust -
    pub async fn username_exists(
    +username_exists in mcaptcha::api::v1::account::username::runners - Rust

    Function username_exists

    Source
    pub async fn username_exists(
         payload: &AccountCheckPayload,
    -    data: &AppData
    -) -> Result<AccountCheckResp, ServiceError>
    \ No newline at end of file + 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 209b6acb..93eac5c8 100644 --- a/mcaptcha/api/v1/account/username/runners/index.html +++ b/mcaptcha/api/v1/account/username/runners/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::account::username::runners - Rust -
    \ No newline at end of file +mcaptcha::api::v1::account::username::runners - Rust

    Module runners

    Source

    Functions§

    username_exists
    \ 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 75136eda..4a1986ba 100644 --- a/mcaptcha/api/v1/account/username/struct.Username.html +++ b/mcaptcha/api/v1/account/username/struct.Username.html @@ -1,24 +1,45 @@ -Username in mcaptcha::api::v1::account::username - Rust -
    pub struct Username {
    -    pub username: String,
    -}

    Fields§

    §username: String

    Trait Implementations§

    source§

    impl Clone for Username

    source§

    fn clone(&self) -> Username

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Username

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Username

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Username

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Username in mcaptcha::api::v1::account::username - Rust

    Struct Username

    Source
    pub struct Username {
    +    pub username: String,
    +}

    Fields§

    §username: String

    Trait Implementations§

    Source§

    impl Clone for Username

    Source§

    fn clone(&self) -> Username

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Username

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Username

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for Username

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 88bd96f9..e3e1bcd3 100644 --- a/mcaptcha/api/v1/account/username/struct.set_username.html +++ b/mcaptcha/api/v1/account/username/struct.set_username.html @@ -1,19 +1,33 @@ -set_username in mcaptcha::api::v1::account::username - Rust -
    pub struct set_username;
    Expand description

    update username

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for set_username

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +set_username in mcaptcha::api::v1::account::username - Rust

    Struct set_username

    Source
    pub struct set_username;
    Expand description

    update username

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for set_username

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 9d688cf5..f7681fb9 100644 --- a/mcaptcha/api/v1/account/username/struct.username_exists.html +++ b/mcaptcha/api/v1/account/username/struct.username_exists.html @@ -1,18 +1,32 @@ -username_exists in mcaptcha::api::v1::account::username - Rust -
    pub struct username_exists;

    Trait Implementations§

    source§

    impl HttpServiceFactory for username_exists

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +username_exists in mcaptcha::api::v1::account::username - Rust

    Struct username_exists

    Source
    pub struct username_exists;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for username_exists

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 60b5fd5c..64891a10 100644 --- a/mcaptcha/api/v1/auth/fn.services.html +++ b/mcaptcha/api/v1/auth/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::auth - Rust -

    Function mcaptcha::api::v1::auth::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::auth - Rust

    Function 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 c7e46d17..5be9c0f6 100644 --- a/mcaptcha/api/v1/auth/index.html +++ b/mcaptcha/api/v1/auth/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::auth - Rust -
    \ No newline at end of file +mcaptcha::api::v1::auth - Rust

    Module auth

    Source

    Modules§

    routes
    runners

    Structs§

    login
    register
    signout

    Functions§

    services
    \ 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 7142a541..2f2afd31 100644 --- a/mcaptcha/api/v1/auth/routes/index.html +++ b/mcaptcha/api/v1/auth/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::auth::routes - Rust -

    Module mcaptcha::api::v1::auth::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::auth::routes - Rust

    Module routes

    Source

    Structs§

    Auth
    \ 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 986591db..b81346f0 100644 --- a/mcaptcha/api/v1/auth/routes/struct.Auth.html +++ b/mcaptcha/api/v1/auth/routes/struct.Auth.html @@ -1,22 +1,36 @@ -Auth in mcaptcha::api::v1::auth::routes - Rust -

    Struct mcaptcha::api::v1::auth::routes::Auth

    source ·
    pub struct Auth {
    -    pub logout: &'static str,
    -    pub login: &'static str,
    -    pub register: &'static str,
    -}

    Fields§

    §logout: &'static str§login: &'static str§register: &'static str

    Implementations§

    source§

    impl Auth

    source

    pub const fn new() -> Auth

    Trait Implementations§

    source§

    impl GetLoginRoute for Auth

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Auth

    §

    impl Send for Auth

    §

    impl Sync for Auth

    §

    impl Unpin for Auth

    §

    impl UnwindSafe for Auth

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Auth in mcaptcha::api::v1::auth::routes - Rust

    Struct Auth

    Source
    pub struct Auth {
    +    pub logout: &'static str,
    +    pub login: &'static str,
    +    pub register: &'static str,
    +}

    Fields§

    §logout: &'static str§login: &'static str§register: &'static str

    Implementations§

    Source§

    impl Auth

    Source

    pub const fn new() -> Auth

    Trait Implementations§

    Source§

    impl GetLoginRoute for Auth

    Auto Trait Implementations§

    §

    impl Freeze for Auth

    §

    impl RefUnwindSafe for Auth

    §

    impl Send for Auth

    §

    impl Sync for Auth

    §

    impl Unpin for Auth

    §

    impl UnwindSafe for Auth

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 222f168a..36468923 100644 --- a/mcaptcha/api/v1/auth/runners/fn.login_runner.html +++ b/mcaptcha/api/v1/auth/runners/fn.login_runner.html @@ -1,6 +1,5 @@ -login_runner in mcaptcha::api::v1::auth::runners - Rust -

    Function mcaptcha::api::v1::auth::runners::login_runner

    source ·
    pub async fn login_runner(
    +login_runner in mcaptcha::api::v1::auth::runners - Rust

    Function 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. Errors otherwise

    + data: &AppData, +) -> Result<String, ServiceError>
    Expand description

    returns Ok(()) when everything checks out and the user is authenticated. Errors 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 6a18d266..55aa240a 100644 --- a/mcaptcha/api/v1/auth/runners/fn.register_runner.html +++ b/mcaptcha/api/v1/auth/runners/fn.register_runner.html @@ -1,5 +1,4 @@ -register_runner in mcaptcha::api::v1::auth::runners - Rust -
    pub async fn register_runner(
    +register_runner in mcaptcha::api::v1::auth::runners - Rust

    Function register_runner

    Source
    pub async fn register_runner(
         payload: &Register,
    -    data: &AppData
    -) -> Result<(), ServiceError>
    \ No newline at end of file + 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 109e8bce..6d0943b6 100644 --- a/mcaptcha/api/v1/auth/runners/index.html +++ b/mcaptcha/api/v1/auth/runners/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::auth::runners - Rust -

    Module mcaptcha::api::v1::auth::runners

    source ·

    Structs§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::auth::runners - Rust

    Module runners

    Source

    Structs§

    Login
    Password
    Register

    Functions§

    login_runner
    returns Ok(()) when everything checks out and the user is authenticated. Errors otherwise
    register_runner
    \ 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 64f22e4f..f26991de 100644 --- a/mcaptcha/api/v1/auth/runners/struct.Login.html +++ b/mcaptcha/api/v1/auth/runners/struct.Login.html @@ -1,25 +1,46 @@ -Login in mcaptcha::api::v1::auth::runners - Rust -

    Struct mcaptcha::api::v1::auth::runners::Login

    source ·
    pub struct Login {
    -    pub login: String,
    -    pub password: String,
    -}

    Fields§

    §login: String§password: String

    Trait Implementations§

    source§

    impl Clone for Login

    source§

    fn clone(&self) -> Login

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Login

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Login

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Login

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Login

    §

    impl Send for Login

    §

    impl Sync for Login

    §

    impl Unpin for Login

    §

    impl UnwindSafe for Login

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Login in mcaptcha::api::v1::auth::runners - Rust

    Struct Login

    Source
    pub struct Login {
    +    pub login: String,
    +    pub password: String,
    +}

    Fields§

    §login: String§password: String

    Trait Implementations§

    Source§

    impl Clone for Login

    Source§

    fn clone(&self) -> Login

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Login

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Login

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for Login

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Login

    §

    impl RefUnwindSafe for Login

    §

    impl Send for Login

    §

    impl Sync for Login

    §

    impl Unpin for Login

    §

    impl UnwindSafe for Login

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 3a9b7bb2..9255315c 100644 --- a/mcaptcha/api/v1/auth/runners/struct.Password.html +++ b/mcaptcha/api/v1/auth/runners/struct.Password.html @@ -1,24 +1,45 @@ -Password in mcaptcha::api::v1::auth::runners - Rust -

    Struct mcaptcha::api::v1::auth::runners::Password

    source ·
    pub struct Password {
    -    pub password: String,
    -}

    Fields§

    §password: String

    Trait Implementations§

    source§

    impl Clone for Password

    source§

    fn clone(&self) -> Password

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Password

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Password

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Password

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Password in mcaptcha::api::v1::auth::runners - Rust

    Struct Password

    Source
    pub struct Password {
    +    pub password: String,
    +}

    Fields§

    §password: String

    Trait Implementations§

    Source§

    impl Clone for Password

    Source§

    fn clone(&self) -> Password

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Password

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Password

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for Password

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 2ba5663b..dee3c67e 100644 --- a/mcaptcha/api/v1/auth/runners/struct.Register.html +++ b/mcaptcha/api/v1/auth/runners/struct.Register.html @@ -1,27 +1,48 @@ -Register in mcaptcha::api::v1::auth::runners - Rust -

    Struct mcaptcha::api::v1::auth::runners::Register

    source ·
    pub struct Register {
    -    pub username: String,
    -    pub password: String,
    -    pub confirm_password: String,
    -    pub email: Option<String>,
    -}

    Fields§

    §username: String§password: String§confirm_password: String§email: Option<String>

    Trait Implementations§

    source§

    impl Clone for Register

    source§

    fn clone(&self) -> Register

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Register

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Register

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Register

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Register in mcaptcha::api::v1::auth::runners - Rust

    Struct Register

    Source
    pub struct Register {
    +    pub username: String,
    +    pub password: String,
    +    pub confirm_password: String,
    +    pub email: Option<String>,
    +}

    Fields§

    §username: String§password: String§confirm_password: String§email: Option<String>

    Trait Implementations§

    Source§

    impl Clone for Register

    Source§

    fn clone(&self) -> Register

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Register

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Register

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for Register

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 86ea1ae5..69f13e79 100644 --- a/mcaptcha/api/v1/auth/struct.login.html +++ b/mcaptcha/api/v1/auth/struct.login.html @@ -1,18 +1,32 @@ -login in mcaptcha::api::v1::auth - Rust -

    Struct mcaptcha::api::v1::auth::login

    source ·
    pub struct login;

    Trait Implementations§

    source§

    impl HttpServiceFactory for login

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for login

    §

    impl Send for login

    §

    impl Sync for login

    §

    impl Unpin for login

    §

    impl UnwindSafe for login

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +login in mcaptcha::api::v1::auth - Rust

    Struct login

    Source
    pub struct login;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for login

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for login

    §

    impl RefUnwindSafe for login

    §

    impl Send for login

    §

    impl Sync for login

    §

    impl Unpin for login

    §

    impl UnwindSafe for login

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 3438673f..2fe24144 100644 --- a/mcaptcha/api/v1/auth/struct.register.html +++ b/mcaptcha/api/v1/auth/struct.register.html @@ -1,18 +1,32 @@ -register in mcaptcha::api::v1::auth - Rust -

    Struct mcaptcha::api::v1::auth::register

    source ·
    pub struct register;

    Trait Implementations§

    source§

    impl HttpServiceFactory for register

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +register in mcaptcha::api::v1::auth - Rust

    Struct register

    Source
    pub struct register;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for register

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 c926da53..97b02751 100644 --- a/mcaptcha/api/v1/auth/struct.signout.html +++ b/mcaptcha/api/v1/auth/struct.signout.html @@ -1,18 +1,32 @@ -signout in mcaptcha::api::v1::auth - Rust -

    Struct mcaptcha::api::v1::auth::signout

    source ·
    pub struct signout;

    Trait Implementations§

    source§

    impl HttpServiceFactory for signout

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +signout in mcaptcha::api::v1::auth - Rust

    Struct signout

    Source
    pub struct signout;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for signout

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 f40aaa7d..27cd3943 100644 --- a/mcaptcha/api/v1/fn.get_middleware.html +++ b/mcaptcha/api/v1/fn.get_middleware.html @@ -1,2 +1 @@ -get_middleware in mcaptcha::api::v1 - Rust -

    Function mcaptcha::api::v1::get_middleware

    source ·
    pub fn get_middleware() -> Authentication<Routes>
    \ No newline at end of file +get_middleware in mcaptcha::api::v1 - Rust

    Function 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 e18f8943..e89cbc88 100644 --- a/mcaptcha/api/v1/fn.services.html +++ b/mcaptcha/api/v1/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1 - Rust -

    Function mcaptcha::api::v1::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1 - Rust

    Function 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 89f9557a..26209e82 100644 --- a/mcaptcha/api/v1/index.html +++ b/mcaptcha/api/v1/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1 - Rust -
    \ No newline at end of file +mcaptcha::api::v1 - Rust

    Module v1

    Source

    Re-exports§

    pub use routes::ROUTES;

    Modules§

    account
    auth
    mcaptcha
    meta
    notifications
    pow
    routes 🔒
    stats
    survey

    Structs§

    RedirectQuery

    Functions§

    get_middleware
    services
    \ 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 15cd5c8d..46b72830 100644 --- a/mcaptcha/api/v1/mcaptcha/create/index.html +++ b/mcaptcha/api/v1/mcaptcha/create/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::create - Rust -
    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::create - Rust

    Module create

    Source

    Modules§

    runner

    Structs§

    CreateCaptcha
    MCaptchaDetails
    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 3940cd19..258b8ea9 100644 --- a/mcaptcha/api/v1/mcaptcha/create/runner/fn.create.html +++ b/mcaptcha/api/v1/mcaptcha/create/runner/fn.create.html @@ -1,6 +1,5 @@ -create in mcaptcha::api::v1::mcaptcha::create::runner - Rust -

    Function mcaptcha::api::v1::mcaptcha::create::runner::create

    source ·
    pub async fn create(
    +create in mcaptcha::api::v1::mcaptcha::create::runner - Rust

    Function create

    Source
    pub async fn create(
         payload: &CreateCaptcha,
         data: &AppData,
    -    username: &str
    -) -> Result<MCaptchaDetails, ServiceError>
    \ No newline at end of file + 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 6c4a7446..7c572171 100644 --- a/mcaptcha/api/v1/mcaptcha/create/runner/index.html +++ b/mcaptcha/api/v1/mcaptcha/create/runner/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::create::runner - Rust -

    Module mcaptcha::api::v1::mcaptcha::create::runner

    source ·

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::create::runner - Rust

    Module runner

    Source

    Functions§

    create
    \ 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 c11d11dd..d114e329 100644 --- a/mcaptcha/api/v1/mcaptcha/create/struct.CreateCaptcha.html +++ b/mcaptcha/api/v1/mcaptcha/create/struct.CreateCaptcha.html @@ -1,26 +1,44 @@ -CreateCaptcha in mcaptcha::api::v1::mcaptcha::create - Rust -
    pub struct CreateCaptcha {
    -    pub levels: Vec<Level>,
    -    pub duration: u32,
    -    pub description: String,
    -    pub publish_benchmarks: bool,
    -}

    Fields§

    §levels: Vec<Level>§duration: u32§description: String§publish_benchmarks: bool

    Trait Implementations§

    source§

    impl<'de> Deserialize<'de> for CreateCaptcha

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for CreateCaptcha

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +CreateCaptcha in mcaptcha::api::v1::mcaptcha::create - Rust

    Struct CreateCaptcha

    Source
    pub struct CreateCaptcha {
    +    pub levels: Vec<Level>,
    +    pub duration: u32,
    +    pub description: String,
    +    pub publish_benchmarks: bool,
    +}

    Fields§

    §levels: Vec<Level>§duration: u32§description: String§publish_benchmarks: bool

    Trait Implementations§

    Source§

    impl<'de> Deserialize<'de> for CreateCaptcha

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for CreateCaptcha

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ace7dfe5..64347dd7 100644 --- a/mcaptcha/api/v1/mcaptcha/create/struct.MCaptchaDetails.html +++ b/mcaptcha/api/v1/mcaptcha/create/struct.MCaptchaDetails.html @@ -1,25 +1,46 @@ -MCaptchaDetails in mcaptcha::api::v1::mcaptcha::create - Rust -
    pub struct MCaptchaDetails {
    -    pub name: String,
    -    pub key: String,
    -}

    Fields§

    §name: String§key: String

    Trait Implementations§

    source§

    impl Clone for MCaptchaDetails

    source§

    fn clone(&self) -> MCaptchaDetails

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for MCaptchaDetails

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for MCaptchaDetails

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for MCaptchaDetails

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +MCaptchaDetails in mcaptcha::api::v1::mcaptcha::create - Rust

    Struct MCaptchaDetails

    Source
    pub struct MCaptchaDetails {
    +    pub name: String,
    +    pub key: String,
    +}

    Fields§

    §name: String§key: String

    Trait Implementations§

    Source§

    impl Clone for MCaptchaDetails

    Source§

    fn clone(&self) -> MCaptchaDetails

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for MCaptchaDetails

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for MCaptchaDetails

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for MCaptchaDetails

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 06cbcd1c..f98ad4e5 100644 --- a/mcaptcha/api/v1/mcaptcha/create/struct.create.html +++ b/mcaptcha/api/v1/mcaptcha/create/struct.create.html @@ -1,18 +1,32 @@ -create in mcaptcha::api::v1::mcaptcha::create - Rust -

    Struct mcaptcha::api::v1::mcaptcha::create::create

    source ·
    pub struct create;

    Trait Implementations§

    source§

    impl HttpServiceFactory for create

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +create in mcaptcha::api::v1::mcaptcha::create - Rust

    Struct create

    Source
    pub struct create;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for create

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for create

    §

    impl RefUnwindSafe for create

    §

    impl Send for create

    §

    impl Sync for create

    §

    impl Unpin for create

    §

    impl UnwindSafe for create

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 09ff08dc..6f90e99c 100644 --- a/mcaptcha/api/v1/mcaptcha/delete/index.html +++ b/mcaptcha/api/v1/mcaptcha/delete/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::delete - Rust -
    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::delete - Rust

    Module delete

    Source

    Structs§

    DeleteCaptcha
    delete
    \ 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 bdc37b61..fd4f3a1d 100644 --- a/mcaptcha/api/v1/mcaptcha/delete/struct.DeleteCaptcha.html +++ b/mcaptcha/api/v1/mcaptcha/delete/struct.DeleteCaptcha.html @@ -1,25 +1,46 @@ -DeleteCaptcha in mcaptcha::api::v1::mcaptcha::delete - Rust -
    pub struct DeleteCaptcha {
    -    pub key: String,
    -    pub password: String,
    -}

    Fields§

    §key: String§password: String

    Trait Implementations§

    source§

    impl Clone for DeleteCaptcha

    source§

    fn clone(&self) -> DeleteCaptcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for DeleteCaptcha

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for DeleteCaptcha

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for DeleteCaptcha

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +DeleteCaptcha in mcaptcha::api::v1::mcaptcha::delete - Rust

    Struct DeleteCaptcha

    Source
    pub struct DeleteCaptcha {
    +    pub key: String,
    +    pub password: String,
    +}

    Fields§

    §key: String§password: String

    Trait Implementations§

    Source§

    impl Clone for DeleteCaptcha

    Source§

    fn clone(&self) -> DeleteCaptcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for DeleteCaptcha

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for DeleteCaptcha

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for DeleteCaptcha

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 c45b494d..a41b9724 100644 --- a/mcaptcha/api/v1/mcaptcha/delete/struct.delete.html +++ b/mcaptcha/api/v1/mcaptcha/delete/struct.delete.html @@ -1,18 +1,32 @@ -delete in mcaptcha::api::v1::mcaptcha::delete - Rust -

    Struct mcaptcha::api::v1::mcaptcha::delete::delete

    source ·
    pub struct delete;

    Trait Implementations§

    source§

    impl HttpServiceFactory for delete

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +delete in mcaptcha::api::v1::mcaptcha::delete - Rust

    Struct delete

    Source
    pub struct delete;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for delete

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for delete

    §

    impl RefUnwindSafe for delete

    §

    impl Send for delete

    §

    impl Sync for delete

    §

    impl Unpin for delete

    §

    impl UnwindSafe for delete

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 4bd6c4bf..d5f777a1 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/fn.calculate.html +++ b/mcaptcha/api/v1/mcaptcha/easy/fn.calculate.html @@ -1,5 +1,4 @@ -calculate in mcaptcha::api::v1::mcaptcha::easy - Rust -

    Function mcaptcha::api::v1::mcaptcha::easy::calculate

    source ·
    pub fn calculate(
    +calculate in mcaptcha::api::v1::mcaptcha::easy - Rust

    Function calculate

    Source
    pub fn calculate(
         tp: &TrafficPattern,
    -    strategy: &DefaultDifficultyStrategy
    -) -> Result<Vec<Level>, ServiceError>
    \ No newline at end of file + strategy: &DefaultDifficultyStrategy, +) -> Result<Vec<Level>, ServiceError>
    \ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/fn.calculate_with_percentile.html b/mcaptcha/api/v1/mcaptcha/easy/fn.calculate_with_percentile.html index 8db45500..09a7747a 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/fn.calculate_with_percentile.html +++ b/mcaptcha/api/v1/mcaptcha/easy/fn.calculate_with_percentile.html @@ -1,5 +1,4 @@ -calculate_with_percentile in mcaptcha::api::v1::mcaptcha::easy - Rust -
    async fn calculate_with_percentile(
    +calculate_with_percentile in mcaptcha::api::v1::mcaptcha::easy - Rust

    Function calculate_with_percentile

    Source
    async fn calculate_with_percentile(
         data: &AppData,
    -    tp: &TrafficPattern
    -) -> Result<Option<Vec<Level>>, ServiceError>
    \ No newline at end of file + tp: &TrafficPattern, +) -> Result<Option<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 847da6f2..ede99ff8 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/fn.services.html +++ b/mcaptcha/api/v1/mcaptcha/easy/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::mcaptcha::easy - Rust -

    Function mcaptcha::api::v1::mcaptcha::easy::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::mcaptcha::easy - Rust

    Function services

    Source
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/fn.update_runner.html b/mcaptcha/api/v1/mcaptcha/easy/fn.update_runner.html index bf5d2660..caeefc61 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/fn.update_runner.html +++ b/mcaptcha/api/v1/mcaptcha/easy/fn.update_runner.html @@ -1,6 +1,5 @@ -update_runner in mcaptcha::api::v1::mcaptcha::easy - Rust -
    pub async fn update_runner(
    +update_runner in mcaptcha::api::v1::mcaptcha::easy - Rust

    Function update_runner

    Source
    pub async fn update_runner(
         data: &AppData,
         payload: UpdateTrafficPattern,
    -    username: String
    -) -> Result<(), ServiceError>
    \ No newline at end of file + username: String, +) -> Result<(), ServiceError>
    \ 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 8fb6758c..43dcdf2d 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/index.html +++ b/mcaptcha/api/v1/mcaptcha/easy/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::easy - Rust -

    Module mcaptcha::api::v1::mcaptcha::easy

    source ·

    Modules§

    Structs§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::easy - Rust

    Module easy

    Source

    Modules§

    routes

    Structs§

    TrafficPatternRequest
    User’s traffic pattern; used in generating a captcha configuration
    UpdateTrafficPattern
    create
    update

    Functions§

    calculate
    calculate_with_percentile 🔒
    services
    update_runner
    \ 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 4d39d7c6..6bfeede7 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/routes/index.html +++ b/mcaptcha/api/v1/mcaptcha/easy/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::easy::routes - Rust -

    Module mcaptcha::api::v1::mcaptcha::easy::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::easy::routes - Rust

    Module routes

    Source

    Structs§

    Easy
    \ 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 c67740d5..24b003c9 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/routes/struct.Easy.html +++ b/mcaptcha/api/v1/mcaptcha/easy/routes/struct.Easy.html @@ -1,22 +1,36 @@ -Easy in mcaptcha::api::v1::mcaptcha::easy::routes - Rust -

    Struct mcaptcha::api::v1::mcaptcha::easy::routes::Easy

    source ·
    pub struct Easy {
    -    pub create: &'static str,
    -    pub update: &'static str,
    -}

    Fields§

    §create: &'static str

    easy is using defaults

    -
    §update: &'static str

    Implementations§

    source§

    impl Easy

    source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Easy

    §

    impl Send for Easy

    §

    impl Sync for Easy

    §

    impl Unpin for Easy

    §

    impl UnwindSafe for Easy

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Easy in mcaptcha::api::v1::mcaptcha::easy::routes - Rust

    Struct Easy

    Source
    pub struct Easy {
    +    pub create: &'static str,
    +    pub update: &'static str,
    +}

    Fields§

    §create: &'static str

    easy is using defaults

    +
    §update: &'static str

    Implementations§

    Source§

    impl Easy

    Source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl Freeze for Easy

    §

    impl RefUnwindSafe for Easy

    §

    impl Send for Easy

    §

    impl Sync for Easy

    §

    impl Unpin for Easy

    §

    impl UnwindSafe for Easy

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 09935b5f..3d1477c5 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.TrafficPatternRequest.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.TrafficPatternRequest.html @@ -1,34 +1,55 @@ -TrafficPatternRequest in mcaptcha::api::v1::mcaptcha::easy - Rust -
    pub struct TrafficPatternRequest {
    -    pub avg_traffic: u32,
    -    pub peak_sustainable_traffic: u32,
    -    pub broke_my_site_traffic: Option<u32>,
    -    pub description: String,
    -    pub publish_benchmarks: bool,
    +TrafficPatternRequest in mcaptcha::api::v1::mcaptcha::easy - Rust

    Struct TrafficPatternRequest

    Source
    pub struct TrafficPatternRequest {
    +    pub avg_traffic: u32,
    +    pub peak_sustainable_traffic: u32,
    +    pub broke_my_site_traffic: Option<u32>,
    +    pub description: String,
    +    pub publish_benchmarks: bool,
     }
    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>

    traffic that bought the user’s website down; optional

    -
    §description: String

    Captcha description

    -
    §publish_benchmarks: bool

    publish benchmarks

    -

    Trait Implementations§

    source§

    impl Clone for TrafficPatternRequest

    source§

    fn clone(&self) -> TrafficPatternRequest

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for TrafficPatternRequest

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for TrafficPatternRequest

    source§

    fn default() -> TrafficPatternRequest

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for TrafficPatternRequest

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<&TrafficPatternRequest> for TrafficPattern

    source§

    fn from(t: &TrafficPatternRequest) -> Self

    Converts to this type from the input type.
    source§

    impl Serialize for TrafficPatternRequest

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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>

    traffic that bought the user’s website down; optional

    +
    §description: String

    Captcha description

    +
    §publish_benchmarks: bool

    publish benchmarks

    +

    Trait Implementations§

    Source§

    impl Clone for TrafficPatternRequest

    Source§

    fn clone(&self) -> TrafficPatternRequest

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for TrafficPatternRequest

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for TrafficPatternRequest

    Source§

    fn default() -> TrafficPatternRequest

    Returns the “default value” for a type. Read more
    Source§

    impl<'de> Deserialize<'de> for TrafficPatternRequest

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<&TrafficPatternRequest> for TrafficPattern

    Source§

    fn from(t: &TrafficPatternRequest) -> Self

    Converts to this type from the input type.
    Source§

    impl Serialize for TrafficPatternRequest

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 a0aa2f6f..3359c6a4 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.UpdateTrafficPattern.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.UpdateTrafficPattern.html @@ -1,25 +1,46 @@ -UpdateTrafficPattern in mcaptcha::api::v1::mcaptcha::easy - Rust -
    pub struct UpdateTrafficPattern {
    +UpdateTrafficPattern in mcaptcha::api::v1::mcaptcha::easy - Rust

    Struct UpdateTrafficPattern

    Source
    pub struct UpdateTrafficPattern {
         pub pattern: TrafficPatternRequest,
    -    pub key: String,
    -}

    Fields§

    §pattern: TrafficPatternRequest§key: String

    Trait Implementations§

    source§

    impl Clone for UpdateTrafficPattern

    source§

    fn clone(&self) -> UpdateTrafficPattern

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for UpdateTrafficPattern

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for UpdateTrafficPattern

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for UpdateTrafficPattern

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + pub key: String, +}

    Fields§

    §pattern: TrafficPatternRequest§key: String

    Trait Implementations§

    Source§

    impl Clone for UpdateTrafficPattern

    Source§

    fn clone(&self) -> UpdateTrafficPattern

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for UpdateTrafficPattern

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for UpdateTrafficPattern

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for UpdateTrafficPattern

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 26072366..0f1c21df 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.create.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.create.html @@ -1,18 +1,32 @@ -create in mcaptcha::api::v1::mcaptcha::easy - Rust -

    Struct mcaptcha::api::v1::mcaptcha::easy::create

    source ·
    pub struct create;

    Trait Implementations§

    source§

    impl HttpServiceFactory for create

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +create in mcaptcha::api::v1::mcaptcha::easy - Rust

    Struct create

    Source
    pub struct create;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for create

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for create

    §

    impl RefUnwindSafe for create

    §

    impl Send for create

    §

    impl Sync for create

    §

    impl Unpin for create

    §

    impl UnwindSafe for create

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 486eb76b..a042135d 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.update.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.update.html @@ -1,18 +1,32 @@ -update in mcaptcha::api::v1::mcaptcha::easy - Rust -

    Struct mcaptcha::api::v1::mcaptcha::easy::update

    source ·
    pub struct update;

    Trait Implementations§

    source§

    impl HttpServiceFactory for update

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +update in mcaptcha::api::v1::mcaptcha::easy - Rust

    Struct update

    Source
    pub struct update;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for update

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for update

    §

    impl RefUnwindSafe for update

    §

    impl Send for update

    §

    impl Sync for update

    §

    impl Unpin for update

    §

    impl UnwindSafe for update

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 78441aa4..5a88d84f 100644 --- a/mcaptcha/api/v1/mcaptcha/fn.get_random.html +++ b/mcaptcha/api/v1/mcaptcha/fn.get_random.html @@ -1,2 +1 @@ -get_random in mcaptcha::api::v1::mcaptcha - Rust -

    Function mcaptcha::api::v1::mcaptcha::get_random

    source ·
    pub fn get_random(len: usize) -> String
    \ No newline at end of file +get_random in mcaptcha::api::v1::mcaptcha - Rust

    Function 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 efaeb11b..95d6fad4 100644 --- a/mcaptcha/api/v1/mcaptcha/fn.services.html +++ b/mcaptcha/api/v1/mcaptcha/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::mcaptcha - Rust -

    Function mcaptcha::api::v1::mcaptcha::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::mcaptcha - Rust

    Function 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 7198e8cf..b8741c1c 100644 --- a/mcaptcha/api/v1/mcaptcha/get/index.html +++ b/mcaptcha/api/v1/mcaptcha/get/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::get - Rust -
    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::get - Rust

    Module get

    Source

    Structs§

    I32Levels
    Levels
    get_captcha
    \ 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 1f735755..3440f836 100644 --- a/mcaptcha/api/v1/mcaptcha/get/struct.I32Levels.html +++ b/mcaptcha/api/v1/mcaptcha/get/struct.I32Levels.html @@ -1,25 +1,46 @@ -I32Levels in mcaptcha::api::v1::mcaptcha::get - Rust -

    Struct mcaptcha::api::v1::mcaptcha::get::I32Levels

    source ·
    pub struct I32Levels {
    -    pub difficulty_factor: i32,
    -    pub visitor_threshold: i32,
    -}

    Fields§

    §difficulty_factor: i32§visitor_threshold: i32

    Trait Implementations§

    source§

    impl Clone for I32Levels

    source§

    fn clone(&self) -> I32Levels

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for I32Levels

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for I32Levels

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for I32Levels

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +I32Levels in mcaptcha::api::v1::mcaptcha::get - Rust

    Struct I32Levels

    Source
    pub struct I32Levels {
    +    pub difficulty_factor: i32,
    +    pub visitor_threshold: i32,
    +}

    Fields§

    §difficulty_factor: i32§visitor_threshold: i32

    Trait Implementations§

    Source§

    impl Clone for I32Levels

    Source§

    fn clone(&self) -> I32Levels

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for I32Levels

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for I32Levels

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for I32Levels

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 51f9bd63..189f21b5 100644 --- a/mcaptcha/api/v1/mcaptcha/get/struct.Levels.html +++ b/mcaptcha/api/v1/mcaptcha/get/struct.Levels.html @@ -1,24 +1,45 @@ -Levels in mcaptcha::api::v1::mcaptcha::get - Rust -

    Struct mcaptcha::api::v1::mcaptcha::get::Levels

    source ·
    pub struct Levels {
    +Levels in mcaptcha::api::v1::mcaptcha::get - Rust

    Struct Levels

    Source
    pub struct Levels {
         levels: I32Levels,
    -}

    Fields§

    §levels: I32Levels

    Trait Implementations§

    source§

    impl Clone for Levels

    source§

    fn clone(&self) -> Levels

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Levels

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Levels

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Levels

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §levels: I32Levels

    Trait Implementations§

    Source§

    impl Clone for Levels

    Source§

    fn clone(&self) -> Levels

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Levels

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Levels

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for Levels

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Levels

    §

    impl RefUnwindSafe for Levels

    §

    impl Send for Levels

    §

    impl Sync for Levels

    §

    impl Unpin for Levels

    §

    impl UnwindSafe for Levels

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 d393baaa..a72f32e1 100644 --- a/mcaptcha/api/v1/mcaptcha/get/struct.get_captcha.html +++ b/mcaptcha/api/v1/mcaptcha/get/struct.get_captcha.html @@ -1,18 +1,32 @@ -get_captcha in mcaptcha::api::v1::mcaptcha::get - Rust -
    pub struct get_captcha;

    Trait Implementations§

    source§

    impl HttpServiceFactory for get_captcha

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +get_captcha in mcaptcha::api::v1::mcaptcha::get - Rust

    Struct get_captcha

    Source
    pub struct get_captcha;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for get_captcha

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/index.html b/mcaptcha/api/v1/mcaptcha/index.html index cd6fb8bc..311c41a6 100644 --- a/mcaptcha/api/v1/mcaptcha/index.html +++ b/mcaptcha/api/v1/mcaptcha/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha - Rust -
    \ No newline at end of file +mcaptcha::api::v1::mcaptcha - Rust
    \ 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 e99b4dfb..6034f648 100644 --- a/mcaptcha/api/v1/mcaptcha/routes/index.html +++ b/mcaptcha/api/v1/mcaptcha/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::routes - Rust -

    Module mcaptcha::api::v1::mcaptcha::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::routes - Rust

    Module routes

    Source

    Structs§

    Captcha
    \ 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 9686a1bb..7123e057 100644 --- a/mcaptcha/api/v1/mcaptcha/routes/struct.Captcha.html +++ b/mcaptcha/api/v1/mcaptcha/routes/struct.Captcha.html @@ -1,26 +1,40 @@ -Captcha in mcaptcha::api::v1::mcaptcha::routes - Rust -
    pub struct Captcha {
    -    pub create: &'static str,
    -    pub update: &'static str,
    -    pub get: &'static str,
    -    pub delete: &'static str,
    -    pub update_key: &'static str,
    +Captcha in mcaptcha::api::v1::mcaptcha::routes - Rust

    Struct Captcha

    Source
    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 easy: Easy,
         pub stats: Stats,
    -}

    Fields§

    §create: &'static str§update: &'static str§get: &'static str§delete: &'static str§update_key: &'static str§easy: Easy§stats: Stats

    Implementations§

    source§

    impl Captcha

    source

    pub const fn new() -> Self

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §create: &'static str§update: &'static str§get: &'static str§delete: &'static str§update_key: &'static str§easy: Easy§stats: Stats

    Implementations§

    Source§

    impl Captcha

    Source

    pub const fn new() -> Self

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 b1659a49..227b3604 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/index.html +++ b/mcaptcha/api/v1/mcaptcha/stats/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::stats - Rust -
    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::stats - Rust

    Module stats

    Source

    Modules§

    routes

    Structs§

    StatsPayload
    get
    \ 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 90b71c04..6b4aa0ab 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/routes/index.html +++ b/mcaptcha/api/v1/mcaptcha/stats/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::stats::routes - Rust -

    Module mcaptcha::api::v1::mcaptcha::stats::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::stats::routes - Rust

    Module routes

    Source

    Structs§

    Stats
    \ 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 74316507..7689b229 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/routes/struct.Stats.html +++ b/mcaptcha/api/v1/mcaptcha/stats/routes/struct.Stats.html @@ -1,20 +1,34 @@ -Stats in mcaptcha::api::v1::mcaptcha::stats::routes - Rust -
    pub struct Stats {
    -    pub get: &'static str,
    -}

    Fields§

    §get: &'static str

    Implementations§

    source§

    impl Stats

    source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Stats

    §

    impl Send for Stats

    §

    impl Sync for Stats

    §

    impl Unpin for Stats

    §

    impl UnwindSafe for Stats

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Stats in mcaptcha::api::v1::mcaptcha::stats::routes - Rust

    Struct Stats

    Source
    pub struct Stats {
    +    pub get: &'static str,
    +}

    Fields§

    §get: &'static str

    Implementations§

    Source§

    impl Stats

    Source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl Freeze for Stats

    §

    impl RefUnwindSafe for Stats

    §

    impl Send for Stats

    §

    impl Sync for Stats

    §

    impl Unpin for Stats

    §

    impl UnwindSafe for Stats

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 d13fd18d..3a048e86 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/struct.StatsPayload.html +++ b/mcaptcha/api/v1/mcaptcha/stats/struct.StatsPayload.html @@ -1,24 +1,45 @@ -StatsPayload in mcaptcha::api::v1::mcaptcha::stats - Rust -
    pub struct StatsPayload {
    -    pub key: String,
    -}

    Fields§

    §key: String

    Trait Implementations§

    source§

    impl Clone for StatsPayload

    source§

    fn clone(&self) -> StatsPayload

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for StatsPayload

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for StatsPayload

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for StatsPayload

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +StatsPayload in mcaptcha::api::v1::mcaptcha::stats - Rust

    Struct StatsPayload

    Source
    pub struct StatsPayload {
    +    pub key: String,
    +}

    Fields§

    §key: String

    Trait Implementations§

    Source§

    impl Clone for StatsPayload

    Source§

    fn clone(&self) -> StatsPayload

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for StatsPayload

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for StatsPayload

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for StatsPayload

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 f4419112..cc1d9767 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/struct.get.html +++ b/mcaptcha/api/v1/mcaptcha/stats/struct.get.html @@ -1,18 +1,32 @@ -get in mcaptcha::api::v1::mcaptcha::stats - Rust -

    Struct mcaptcha::api::v1::mcaptcha::stats::get

    source ·
    pub struct get;

    Trait Implementations§

    source§

    impl HttpServiceFactory for get

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for get

    §

    impl Send for get

    §

    impl Sync for get

    §

    impl Unpin for get

    §

    impl UnwindSafe for get

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +get in mcaptcha::api::v1::mcaptcha::stats - Rust

    Struct get

    Source
    pub struct get;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for get

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for get

    §

    impl RefUnwindSafe for get

    §

    impl Send for get

    §

    impl Sync for get

    §

    impl Unpin for get

    §

    impl UnwindSafe for get

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 526163be..811ee164 100644 --- a/mcaptcha/api/v1/mcaptcha/update/index.html +++ b/mcaptcha/api/v1/mcaptcha/update/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::update - Rust -
    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::update - Rust
    \ 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 8e75c988..fc0f6cb9 100644 --- a/mcaptcha/api/v1/mcaptcha/update/runner/fn.update_captcha.html +++ b/mcaptcha/api/v1/mcaptcha/update/runner/fn.update_captcha.html @@ -1,6 +1,5 @@ -update_captcha in mcaptcha::api::v1::mcaptcha::update::runner - Rust -
    pub async fn update_captcha(
    +update_captcha in mcaptcha::api::v1::mcaptcha::update::runner - Rust

    Function update_captcha

    Source
    pub async fn update_captcha(
         payload: &UpdateCaptcha,
         data: &AppData,
    -    username: &str
    -) -> Result<(), ServiceError>
    \ No newline at end of file + 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 d08f08e0..563640b7 100644 --- a/mcaptcha/api/v1/mcaptcha/update/runner/index.html +++ b/mcaptcha/api/v1/mcaptcha/update/runner/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::mcaptcha::update::runner - Rust -
    \ No newline at end of file +mcaptcha::api::v1::mcaptcha::update::runner - Rust

    Module runner

    Source

    Functions§

    update_captcha
    \ 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 ddd6ebfd..86505432 100644 --- a/mcaptcha/api/v1/mcaptcha/update/struct.UpdateCaptcha.html +++ b/mcaptcha/api/v1/mcaptcha/update/struct.UpdateCaptcha.html @@ -1,27 +1,45 @@ -UpdateCaptcha in mcaptcha::api::v1::mcaptcha::update - Rust -
    pub struct UpdateCaptcha {
    -    pub levels: Vec<Level>,
    -    pub duration: u32,
    -    pub description: String,
    -    pub key: String,
    -    pub publish_benchmarks: bool,
    -}

    Fields§

    §levels: Vec<Level>§duration: u32§description: String§key: String§publish_benchmarks: bool

    Trait Implementations§

    source§

    impl<'de> Deserialize<'de> for UpdateCaptcha

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for UpdateCaptcha

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +UpdateCaptcha in mcaptcha::api::v1::mcaptcha::update - Rust

    Struct UpdateCaptcha

    Source
    pub struct UpdateCaptcha {
    +    pub levels: Vec<Level>,
    +    pub duration: u32,
    +    pub description: String,
    +    pub key: String,
    +    pub publish_benchmarks: bool,
    +}

    Fields§

    §levels: Vec<Level>§duration: u32§description: String§key: String§publish_benchmarks: bool

    Trait Implementations§

    Source§

    impl<'de> Deserialize<'de> for UpdateCaptcha

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for UpdateCaptcha

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 415a7522..67b0a0d7 100644 --- a/mcaptcha/api/v1/mcaptcha/update/struct.update_captcha.html +++ b/mcaptcha/api/v1/mcaptcha/update/struct.update_captcha.html @@ -1,18 +1,32 @@ -update_captcha in mcaptcha::api::v1::mcaptcha::update - Rust -
    pub struct update_captcha;

    Trait Implementations§

    source§

    impl HttpServiceFactory for update_captcha

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +update_captcha in mcaptcha::api::v1::mcaptcha::update - Rust

    Struct update_captcha

    Source
    pub struct update_captcha;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for update_captcha

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 8fdaa2e4..56d748c4 100644 --- a/mcaptcha/api/v1/mcaptcha/update/struct.update_key.html +++ b/mcaptcha/api/v1/mcaptcha/update/struct.update_key.html @@ -1,18 +1,32 @@ -update_key in mcaptcha::api::v1::mcaptcha::update - Rust -
    pub struct update_key;

    Trait Implementations§

    source§

    impl HttpServiceFactory for update_key

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +update_key in mcaptcha::api::v1::mcaptcha::update - Rust

    Struct update_key

    Source
    pub struct update_key;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for update_key

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 55d799fa..5b53b5b9 100644 --- a/mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html +++ b/mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html @@ -1,25 +1,42 @@ -BuildDetailsBuilderError in mcaptcha::api::v1::meta - Rust -
    #[non_exhaustive]
    pub enum BuildDetailsBuilderError { - UninitializedField(&'static str), - ValidationError(String), +BuildDetailsBuilderError in mcaptcha::api::v1::meta - Rust

    Enum BuildDetailsBuilderError

    Source
    #[non_exhaustive]
    pub enum BuildDetailsBuilderError { + 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§

    source§

    impl Debug for BuildDetailsBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for BuildDetailsBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for BuildDetailsBuilderError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<String> for BuildDetailsBuilderError

    source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    source§

    impl From<UninitializedFieldError> for BuildDetailsBuilderError

    source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Debug for BuildDetailsBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for BuildDetailsBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for BuildDetailsBuilderError

    1.30.0 · Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl From<String> for BuildDetailsBuilderError

    Source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    Source§

    impl From<UninitializedFieldError> for BuildDetailsBuilderError

    Source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 2d01cb6b..01efa8ae 100644 --- a/mcaptcha/api/v1/meta/enum.HealthBuilderError.html +++ b/mcaptcha/api/v1/meta/enum.HealthBuilderError.html @@ -1,25 +1,42 @@ -HealthBuilderError in mcaptcha::api::v1::meta - Rust -
    #[non_exhaustive]
    pub enum HealthBuilderError { - UninitializedField(&'static str), - ValidationError(String), +HealthBuilderError in mcaptcha::api::v1::meta - Rust

    Enum HealthBuilderError

    Source
    #[non_exhaustive]
    pub enum HealthBuilderError { + 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§

    source§

    impl Debug for HealthBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for HealthBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for HealthBuilderError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<String> for HealthBuilderError

    source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    source§

    impl From<UninitializedFieldError> for HealthBuilderError

    source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Debug for HealthBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for HealthBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for HealthBuilderError

    1.30.0 · Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl From<String> for HealthBuilderError

    Source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    Source§

    impl From<UninitializedFieldError> for HealthBuilderError

    Source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 2f9a779d..cd3c6b1f 100644 --- a/mcaptcha/api/v1/meta/fn.services.html +++ b/mcaptcha/api/v1/meta/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::meta - Rust -

    Function mcaptcha::api::v1::meta::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::meta - Rust

    Function 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 c2e1b87e..d19fbaf3 100644 --- a/mcaptcha/api/v1/meta/index.html +++ b/mcaptcha/api/v1/meta/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::meta - Rust -

    Module mcaptcha::api::v1::meta

    source ·

    Modules§

    Structs§

    Enums§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::meta - Rust

    Module meta

    Source

    Modules§

    routes

    Structs§

    BuildDetails
    BuildDetailsBuilder
    Builder for BuildDetails.
    Health
    Health check return datatype
    HealthBuilder
    Builder for Health.
    build_details
    emits build details of the bninary
    health
    checks all components of the system

    Enums§

    BuildDetailsBuilderError
    Error type for BuildDetailsBuilder
    HealthBuilderError
    Error type for HealthBuilder

    Functions§

    services
    \ 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 ba0a2feb..a53413df 100644 --- a/mcaptcha/api/v1/meta/routes/index.html +++ b/mcaptcha/api/v1/meta/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::meta::routes - Rust -

    Module mcaptcha::api::v1::meta::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::meta::routes - Rust

    Module routes

    Source

    Structs§

    Meta
    \ 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 8e6ad8e8..aca1c8d2 100644 --- a/mcaptcha/api/v1/meta/routes/struct.Meta.html +++ b/mcaptcha/api/v1/meta/routes/struct.Meta.html @@ -1,21 +1,35 @@ -Meta in mcaptcha::api::v1::meta::routes - Rust -

    Struct mcaptcha::api::v1::meta::routes::Meta

    source ·
    pub struct Meta {
    -    pub build_details: &'static str,
    -    pub health: &'static str,
    -}

    Fields§

    §build_details: &'static str§health: &'static str

    Implementations§

    source§

    impl Meta

    source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Meta

    §

    impl Send for Meta

    §

    impl Sync for Meta

    §

    impl Unpin for Meta

    §

    impl UnwindSafe for Meta

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Meta in mcaptcha::api::v1::meta::routes - Rust

    Struct Meta

    Source
    pub struct Meta {
    +    pub build_details: &'static str,
    +    pub health: &'static str,
    +}

    Fields§

    §build_details: &'static str§health: &'static str

    Implementations§

    Source§

    impl Meta

    Source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl Freeze for Meta

    §

    impl RefUnwindSafe for Meta

    §

    impl Send for Meta

    §

    impl Sync for Meta

    §

    impl Unpin for Meta

    §

    impl UnwindSafe for Meta

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 9e964c78..3efecbe2 100644 --- a/mcaptcha/api/v1/meta/struct.BuildDetails.html +++ b/mcaptcha/api/v1/meta/struct.BuildDetails.html @@ -1,24 +1,45 @@ -BuildDetails in mcaptcha::api::v1::meta - Rust -

    Struct mcaptcha::api::v1::meta::BuildDetails

    source ·
    pub struct BuildDetails {
    -    pub version: &'static str,
    -    pub git_commit_hash: &'static str,
    -}

    Fields§

    §version: &'static str§git_commit_hash: &'static str

    Trait Implementations§

    source§

    impl Clone for BuildDetails

    source§

    fn clone(&self) -> BuildDetails

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for BuildDetails

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Deserialize<'static> for BuildDetails

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'static>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for BuildDetails

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +BuildDetails in mcaptcha::api::v1::meta - Rust

    Struct BuildDetails

    Source
    pub struct BuildDetails {
    +    pub version: &'static str,
    +    pub git_commit_hash: &'static str,
    +}

    Fields§

    §version: &'static str§git_commit_hash: &'static str

    Trait Implementations§

    Source§

    impl Clone for BuildDetails

    Source§

    fn clone(&self) -> BuildDetails

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for BuildDetails

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Deserialize<'static> for BuildDetails

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'static>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for BuildDetails

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 64332869..493d2382 100644 --- a/mcaptcha/api/v1/meta/struct.BuildDetailsBuilder.html +++ b/mcaptcha/api/v1/meta/struct.BuildDetailsBuilder.html @@ -1,27 +1,44 @@ -BuildDetailsBuilder in mcaptcha::api::v1::meta - Rust -
    pub struct BuildDetailsBuilder {
    -    version: Option<&'static str>,
    -    git_commit_hash: Option<&'static str>,
    +BuildDetailsBuilder in mcaptcha::api::v1::meta - Rust

    Struct BuildDetailsBuilder

    Source
    pub struct BuildDetailsBuilder {
    +    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§

    source§

    impl BuildDetailsBuilder

    source

    pub fn version(&mut self, value: &'static str) -> &mut Self

    source

    pub fn git_commit_hash(&mut self, value: &'static str) -> &mut Self

    source

    pub fn build(&self) -> Result<BuildDetails, BuildDetailsBuilderError>

    Builds a new BuildDetails.

    +

    Fields§

    §version: Option<&'static str>§git_commit_hash: Option<&'static str>

    Implementations§

    Source§

    impl BuildDetailsBuilder

    Source

    pub fn version(&mut self, value: &'static str) -> &mut Self

    Source

    pub fn git_commit_hash(&mut self, value: &'static str) -> &mut Self

    Source

    pub fn build(&self) -> Result<BuildDetails, BuildDetailsBuilderError>

    Builds a new BuildDetails.

    §Errors

    If a required field has not been initialized.

    -
    source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    -

    Trait Implementations§

    source§

    impl Clone for BuildDetailsBuilder

    source§

    fn clone(&self) -> BuildDetailsBuilder

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for BuildDetailsBuilder

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    Source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    +

    Trait Implementations§

    Source§

    impl Clone for BuildDetailsBuilder

    Source§

    fn clone(&self) -> BuildDetailsBuilder

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for BuildDetailsBuilder

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 e5060b0d..75b864bc 100644 --- a/mcaptcha/api/v1/meta/struct.Health.html +++ b/mcaptcha/api/v1/meta/struct.Health.html @@ -1,26 +1,47 @@ -Health in mcaptcha::api::v1::meta - Rust -

    Struct mcaptcha::api::v1::meta::Health

    source ·
    pub struct Health {
    -    db: bool,
    -    redis: Option<bool>,
    +Health in mcaptcha::api::v1::meta - Rust

    Struct Health

    Source
    pub struct Health {
    +    db: bool,
    +    redis: Option<bool>,
     }
    Expand description

    Health check return datatype

    -

    Fields§

    §db: bool§redis: Option<bool>

    Implementations§

    Trait Implementations§

    source§

    impl Clone for Health

    source§

    fn clone(&self) -> Health

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Health

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Health

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Health

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §db: bool§redis: Option<bool>

    Implementations§

    Trait Implementations§

    Source§

    impl Clone for Health

    Source§

    fn clone(&self) -> Health

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Health

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Health

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for Health

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Health

    §

    impl RefUnwindSafe for Health

    §

    impl Send for Health

    §

    impl Sync for Health

    §

    impl Unpin for Health

    §

    impl UnwindSafe for Health

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 77af2266..3c03b0d9 100644 --- a/mcaptcha/api/v1/meta/struct.HealthBuilder.html +++ b/mcaptcha/api/v1/meta/struct.HealthBuilder.html @@ -1,27 +1,44 @@ -HealthBuilder in mcaptcha::api::v1::meta - Rust -

    Struct mcaptcha::api::v1::meta::HealthBuilder

    source ·
    pub struct HealthBuilder {
    -    db: Option<bool>,
    -    redis: Option<Option<bool>>,
    +HealthBuilder in mcaptcha::api::v1::meta - Rust

    Struct HealthBuilder

    Source
    pub struct HealthBuilder {
    +    db: Option<bool>,
    +    redis: Option<Option<bool>>,
     }
    Expand description

    Builder for Health.

    -

    Fields§

    §db: Option<bool>§redis: Option<Option<bool>>

    Implementations§

    source§

    impl HealthBuilder

    source

    pub fn db(&mut self, value: bool) -> &mut Self

    source

    pub fn redis(&mut self, value: Option<bool>) -> &mut Self

    source

    pub fn build(&self) -> Result<Health, HealthBuilderError>

    Builds a new Health.

    +

    Fields§

    §db: Option<bool>§redis: Option<Option<bool>>

    Implementations§

    Source§

    impl HealthBuilder

    Source

    pub fn db(&mut self, value: bool) -> &mut Self

    Source

    pub fn redis(&mut self, value: Option<bool>) -> &mut Self

    Source

    pub fn build(&self) -> Result<Health, HealthBuilderError>

    Builds a new Health.

    §Errors

    If a required field has not been initialized.

    -
    source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    -

    Trait Implementations§

    source§

    impl Clone for HealthBuilder

    source§

    fn clone(&self) -> HealthBuilder

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for HealthBuilder

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    Source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    +

    Trait Implementations§

    Source§

    impl Clone for HealthBuilder

    Source§

    fn clone(&self) -> HealthBuilder

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for HealthBuilder

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 d616ba50..ba5bf20d 100644 --- a/mcaptcha/api/v1/meta/struct.build_details.html +++ b/mcaptcha/api/v1/meta/struct.build_details.html @@ -1,19 +1,33 @@ -build_details in mcaptcha::api::v1::meta - Rust -

    Struct mcaptcha::api::v1::meta::build_details

    source ·
    pub struct build_details;
    Expand description

    emits build details of the bninary

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for build_details

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +build_details in mcaptcha::api::v1::meta - Rust

    Struct build_details

    Source
    pub struct build_details;
    Expand description

    emits build details of the bninary

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for build_details

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 04c05b92..0b60b61a 100644 --- a/mcaptcha/api/v1/meta/struct.health.html +++ b/mcaptcha/api/v1/meta/struct.health.html @@ -1,19 +1,33 @@ -health in mcaptcha::api::v1::meta - Rust -

    Struct mcaptcha::api::v1::meta::health

    source ·
    pub struct health;
    Expand description

    checks all components of the system

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for health

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +health in mcaptcha::api::v1::meta - Rust

    Struct health

    Source
    pub struct health;
    Expand description

    checks all components of the system

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for health

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for health

    §

    impl RefUnwindSafe for health

    §

    impl Send for health

    §

    impl Sync for health

    §

    impl Unpin for health

    §

    impl UnwindSafe for health

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 3152b053..0203542e 100644 --- a/mcaptcha/api/v1/notifications/add/index.html +++ b/mcaptcha/api/v1/notifications/add/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::notifications::add - Rust -

    Module mcaptcha::api::v1::notifications::add

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::notifications::add - Rust

    Module add

    Source

    Structs§

    AddNotificationRequest
    add_notification
    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 cbca3fc1..c4137e9b 100644 --- a/mcaptcha/api/v1/notifications/add/struct.AddNotificationRequest.html +++ b/mcaptcha/api/v1/notifications/add/struct.AddNotificationRequest.html @@ -1,28 +1,48 @@ -AddNotificationRequest in mcaptcha::api::v1::notifications::add - Rust -
    pub struct AddNotificationRequest {
    -    pub to: String,
    -    pub heading: String,
    -    pub message: String,
    -}

    Fields§

    §to: String§heading: String§message: String

    Trait Implementations§

    source§

    impl Clone for AddNotificationRequest

    source§

    fn clone(&self) -> AddNotificationRequest

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for AddNotificationRequest

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for AddNotificationRequest

    source§

    fn default() -> AddNotificationRequest

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for AddNotificationRequest

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for AddNotificationRequest

    source§

    fn eq(&self, other: &AddNotificationRequest) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for AddNotificationRequest

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for AddNotificationRequest

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +AddNotificationRequest in mcaptcha::api::v1::notifications::add - Rust

    Struct AddNotificationRequest

    Source
    pub struct AddNotificationRequest {
    +    pub to: String,
    +    pub heading: String,
    +    pub message: String,
    +}

    Fields§

    §to: String§heading: String§message: String

    Trait Implementations§

    Source§

    impl Clone for AddNotificationRequest

    Source§

    fn clone(&self) -> AddNotificationRequest

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for AddNotificationRequest

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for AddNotificationRequest

    Source§

    fn default() -> AddNotificationRequest

    Returns the “default value” for a type. Read more
    Source§

    impl<'de> Deserialize<'de> for AddNotificationRequest

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for AddNotificationRequest

    Source§

    fn eq(&self, other: &AddNotificationRequest) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for AddNotificationRequest

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for AddNotificationRequest

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 6977aee5..cf446d2f 100644 --- a/mcaptcha/api/v1/notifications/add/struct.add_notification.html +++ b/mcaptcha/api/v1/notifications/add/struct.add_notification.html @@ -1,19 +1,33 @@ -add_notification in mcaptcha::api::v1::notifications::add - Rust -
    pub struct add_notification;
    Expand description

    route handler that adds a notification message

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for add_notification

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +add_notification in mcaptcha::api::v1::notifications::add - Rust

    Struct add_notification

    Source
    pub struct add_notification;
    Expand description

    route handler that adds a notification message

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for add_notification

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 99be22a6..5d8d3517 100644 --- a/mcaptcha/api/v1/notifications/fn.services.html +++ b/mcaptcha/api/v1/notifications/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::notifications - Rust -
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::notifications - Rust

    Function 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 4705bf2d..9ac0ae01 100644 --- a/mcaptcha/api/v1/notifications/get/index.html +++ b/mcaptcha/api/v1/notifications/get/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::notifications::get - Rust -

    Module mcaptcha::api::v1::notifications::get

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::notifications::get - Rust

    Module get

    Source

    Structs§

    NotificationResp
    get_notification
    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 a00f2687..c7c7c143 100644 --- a/mcaptcha/api/v1/notifications/get/struct.NotificationResp.html +++ b/mcaptcha/api/v1/notifications/get/struct.NotificationResp.html @@ -1,30 +1,50 @@ -NotificationResp in mcaptcha::api::v1::notifications::get - Rust -
    pub struct NotificationResp {
    -    pub name: String,
    -    pub heading: String,
    -    pub message: String,
    -    pub received: i64,
    -    pub id: i32,
    -}

    Fields§

    §name: String§heading: String§message: String§received: i64§id: i32

    Implementations§

    Trait Implementations§

    source§

    impl Clone for NotificationResp

    source§

    fn clone(&self) -> NotificationResp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for NotificationResp

    source§

    fn default() -> NotificationResp

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for NotificationResp

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<Notification> for NotificationResp

    source§

    fn from(n: Notification) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for NotificationResp

    source§

    fn eq(&self, other: &NotificationResp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for NotificationResp

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for NotificationResp

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +NotificationResp in mcaptcha::api::v1::notifications::get - Rust

    Struct NotificationResp

    Source
    pub struct NotificationResp {
    +    pub name: String,
    +    pub heading: String,
    +    pub message: String,
    +    pub received: i64,
    +    pub id: i32,
    +}

    Fields§

    §name: String§heading: String§message: String§received: i64§id: i32

    Implementations§

    Trait Implementations§

    Source§

    impl Clone for NotificationResp

    Source§

    fn clone(&self) -> NotificationResp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for NotificationResp

    Source§

    fn default() -> NotificationResp

    Returns the “default value” for a type. Read more
    Source§

    impl<'de> Deserialize<'de> for NotificationResp

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<Notification> for NotificationResp

    Source§

    fn from(n: Notification) -> Self

    Converts to this type from the input type.
    Source§

    impl PartialEq for NotificationResp

    Source§

    fn eq(&self, other: &NotificationResp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for NotificationResp

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for NotificationResp

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 8a94b6b6..12cf11f7 100644 --- a/mcaptcha/api/v1/notifications/get/struct.get_notification.html +++ b/mcaptcha/api/v1/notifications/get/struct.get_notification.html @@ -1,19 +1,33 @@ -get_notification in mcaptcha::api::v1::notifications::get - Rust -
    pub struct get_notification;
    Expand description

    route handler that gets all unread notifications

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for get_notification

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +get_notification in mcaptcha::api::v1::notifications::get - Rust

    Struct get_notification

    Source
    pub struct get_notification;
    Expand description

    route handler that gets all unread notifications

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for get_notification

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/index.html b/mcaptcha/api/v1/notifications/index.html index 5b88a479..57cd2257 100644 --- a/mcaptcha/api/v1/notifications/index.html +++ b/mcaptcha/api/v1/notifications/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::notifications - Rust -
    \ No newline at end of file +mcaptcha::api::v1::notifications - Rust

    Module notifications

    Source

    Modules§

    add
    get
    mark_read
    routes

    Functions§

    services
    \ 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 d6eaba96..9542fd8a 100644 --- a/mcaptcha/api/v1/notifications/mark_read/index.html +++ b/mcaptcha/api/v1/notifications/mark_read/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::notifications::mark_read - Rust -

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::notifications::mark_read - Rust

    Module mark_read

    Source

    Structs§

    MarkReadReq
    mark_read
    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 4772af25..4d9050fc 100644 --- a/mcaptcha/api/v1/notifications/mark_read/struct.MarkReadReq.html +++ b/mcaptcha/api/v1/notifications/mark_read/struct.MarkReadReq.html @@ -1,23 +1,41 @@ -MarkReadReq in mcaptcha::api::v1::notifications::mark_read - Rust -
    pub struct MarkReadReq {
    -    pub id: i32,
    -}

    Fields§

    §id: i32

    Trait Implementations§

    source§

    impl<'de> Deserialize<'de> for MarkReadReq

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for MarkReadReq

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +MarkReadReq in mcaptcha::api::v1::notifications::mark_read - Rust

    Struct MarkReadReq

    Source
    pub struct MarkReadReq {
    +    pub id: i32,
    +}

    Fields§

    §id: i32

    Trait Implementations§

    Source§

    impl<'de> Deserialize<'de> for MarkReadReq

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for MarkReadReq

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 45601b42..306e613a 100644 --- a/mcaptcha/api/v1/notifications/mark_read/struct.mark_read.html +++ b/mcaptcha/api/v1/notifications/mark_read/struct.mark_read.html @@ -1,19 +1,33 @@ -mark_read in mcaptcha::api::v1::notifications::mark_read - Rust -
    pub struct mark_read;
    Expand description

    route handler that marks a notification read

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for mark_read

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +mark_read in mcaptcha::api::v1::notifications::mark_read - Rust

    Struct mark_read

    Source
    pub struct mark_read;
    Expand description

    route handler that marks a notification read

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for mark_read

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 7bbc00bb..f5ca5411 100644 --- a/mcaptcha/api/v1/notifications/routes/index.html +++ b/mcaptcha/api/v1/notifications/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::notifications::routes - Rust -
    \ No newline at end of file +mcaptcha::api::v1::notifications::routes - Rust

    Module routes

    Source

    Structs§

    Notifications
    \ 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 68ff0c0c..2b3c5e03 100644 --- a/mcaptcha/api/v1/notifications/routes/struct.Notifications.html +++ b/mcaptcha/api/v1/notifications/routes/struct.Notifications.html @@ -1,22 +1,36 @@ -Notifications in mcaptcha::api::v1::notifications::routes - Rust -
    pub struct Notifications {
    -    pub add: &'static str,
    -    pub mark_read: &'static str,
    -    pub get: &'static str,
    -}

    Fields§

    §add: &'static str§mark_read: &'static str§get: &'static str

    Implementations§

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Notifications in mcaptcha::api::v1::notifications::routes - Rust

    Struct Notifications

    Source
    pub struct Notifications {
    +    pub add: &'static str,
    +    pub mark_read: &'static str,
    +    pub get: &'static str,
    +}

    Fields§

    §add: &'static str§mark_read: &'static str§get: &'static str

    Implementations§

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 54b0b710..ac75d038 100644 --- a/mcaptcha/api/v1/pow/fn.services.html +++ b/mcaptcha/api/v1/pow/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::pow - Rust -

    Function mcaptcha::api::v1::pow::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::pow - Rust

    Function 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 20cfdaa4..a88aa25b 100644 --- a/mcaptcha/api/v1/pow/get_config/fn.init_mcaptcha.html +++ b/mcaptcha/api/v1/pow/get_config/fn.init_mcaptcha.html @@ -1,8 +1,7 @@ -init_mcaptcha in mcaptcha::api::v1::pow::get_config - Rust -
    pub async fn init_mcaptcha(
    +init_mcaptcha in mcaptcha::api::v1::pow::get_config - Rust

    Function 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.

    + 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 03fe38df..ee9cd215 100644 --- a/mcaptcha/api/v1/pow/get_config/index.html +++ b/mcaptcha/api/v1/pow/get_config/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::pow::get_config - Rust -

    Module mcaptcha::api::v1::pow::get_config

    source ·

    Structs§

    Functions§

    • Call this when [MCaptcha][libmcaptcha::MCaptcha] is not in master.
    \ No newline at end of file +mcaptcha::api::v1::pow::get_config - Rust

    Module get_config

    Source

    Structs§

    ApiPoWConfig
    GetConfigPayload
    get_config
    get PoW configuration for an mcaptcha key

    Functions§

    init_mcaptcha
    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.ApiPoWConfig.html b/mcaptcha/api/v1/pow/get_config/struct.ApiPoWConfig.html index f33729d5..11f16f44 100644 --- a/mcaptcha/api/v1/pow/get_config/struct.ApiPoWConfig.html +++ b/mcaptcha/api/v1/pow/get_config/struct.ApiPoWConfig.html @@ -1,27 +1,48 @@ -ApiPoWConfig in mcaptcha::api::v1::pow::get_config - Rust -
    pub struct ApiPoWConfig {
    -    pub string: String,
    -    pub difficulty_factor: u32,
    -    pub salt: String,
    -    pub max_recorded_nonce: u32,
    -}

    Fields§

    §string: String§difficulty_factor: u32§salt: String§max_recorded_nonce: u32

    Trait Implementations§

    source§

    impl Clone for ApiPoWConfig

    source§

    fn clone(&self) -> ApiPoWConfig

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ApiPoWConfig

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for ApiPoWConfig

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for ApiPoWConfig

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +ApiPoWConfig in mcaptcha::api::v1::pow::get_config - Rust

    Struct ApiPoWConfig

    Source
    pub struct ApiPoWConfig {
    +    pub string: String,
    +    pub difficulty_factor: u32,
    +    pub salt: String,
    +    pub max_recorded_nonce: u32,
    +}

    Fields§

    §string: String§difficulty_factor: u32§salt: String§max_recorded_nonce: u32

    Trait Implementations§

    Source§

    impl Clone for ApiPoWConfig

    Source§

    fn clone(&self) -> ApiPoWConfig

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for ApiPoWConfig

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for ApiPoWConfig

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for ApiPoWConfig

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 db9dd330..906c504e 100644 --- a/mcaptcha/api/v1/pow/get_config/struct.GetConfigPayload.html +++ b/mcaptcha/api/v1/pow/get_config/struct.GetConfigPayload.html @@ -1,24 +1,45 @@ -GetConfigPayload in mcaptcha::api::v1::pow::get_config - Rust -
    pub struct GetConfigPayload {
    -    pub key: String,
    -}

    Fields§

    §key: String

    Trait Implementations§

    source§

    impl Clone for GetConfigPayload

    source§

    fn clone(&self) -> GetConfigPayload

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for GetConfigPayload

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for GetConfigPayload

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for GetConfigPayload

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +GetConfigPayload in mcaptcha::api::v1::pow::get_config - Rust

    Struct GetConfigPayload

    Source
    pub struct GetConfigPayload {
    +    pub key: String,
    +}

    Fields§

    §key: String

    Trait Implementations§

    Source§

    impl Clone for GetConfigPayload

    Source§

    fn clone(&self) -> GetConfigPayload

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for GetConfigPayload

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for GetConfigPayload

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for GetConfigPayload

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 7ea6a2f9..bea51cdc 100644 --- a/mcaptcha/api/v1/pow/get_config/struct.get_config.html +++ b/mcaptcha/api/v1/pow/get_config/struct.get_config.html @@ -1,19 +1,33 @@ -get_config in mcaptcha::api::v1::pow::get_config - Rust -
    pub struct get_config;
    Expand description

    get PoW configuration for an mcaptcha key

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for get_config

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +get_config in mcaptcha::api::v1::pow::get_config - Rust

    Struct get_config

    Source
    pub struct get_config;
    Expand description

    get PoW configuration for an mcaptcha key

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for get_config

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/pow/index.html b/mcaptcha/api/v1/pow/index.html index 954fd6c7..6f7af84b 100644 --- a/mcaptcha/api/v1/pow/index.html +++ b/mcaptcha/api/v1/pow/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::pow - Rust -

    Module mcaptcha::api::v1::pow

    source ·

    Re-exports§

    Modules§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::pow - Rust

    Module pow

    Source

    Re-exports§

    pub use super::mcaptcha::get::I32Levels;

    Modules§

    get_config
    routes
    verify_pow
    PoW Verification module
    verify_token
    PoW success token module

    Functions§

    services
    \ 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 07fb13e7..b8339fbe 100644 --- a/mcaptcha/api/v1/pow/routes/index.html +++ b/mcaptcha/api/v1/pow/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::pow::routes - Rust -

    Module mcaptcha::api::v1::pow::routes

    source ·

    Macros§

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::pow::routes - Rust

    Module routes

    Source

    Macros§

    rm_scope 🔒

    Structs§

    PoW
    \ 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 c5886798..8b439e57 100644 --- a/mcaptcha/api/v1/pow/routes/macro.rm_scope.html +++ b/mcaptcha/api/v1/pow/routes/macro.rm_scope.html @@ -1,4 +1,3 @@ -rm_scope in mcaptcha::api::v1::pow::routes - Rust -

    Macro mcaptcha::api::v1::pow::routes::rm_scope

    source ·
    macro_rules! rm_scope {
    -    ($name:ident) => { ... };
    -}
    \ No newline at end of file +rm_scope in mcaptcha::api::v1::pow::routes - Rust

    Macro 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 fa714f15..f38cbac0 100644 --- a/mcaptcha/api/v1/pow/routes/struct.PoW.html +++ b/mcaptcha/api/v1/pow/routes/struct.PoW.html @@ -1,26 +1,40 @@ -PoW in mcaptcha::api::v1::pow::routes - Rust -

    Struct mcaptcha::api::v1::pow::routes::PoW

    source ·
    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 str§verify_pow: &'static str§validate_captcha_token: &'static str§scope: &'static str

    Implementations§

    source§

    impl PoW

    source

    pub const fn new() -> Self

    source

    pub fn get_config(&self) -> &str

    remove scope for $name route

    -
    source

    pub fn verify_pow(&self) -> &str

    remove scope for $name route

    -
    source

    pub fn validate_captcha_token(&self) -> &str

    remove scope for $name route

    -

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for PoW

    §

    impl Send for PoW

    §

    impl Sync for PoW

    §

    impl Unpin for PoW

    §

    impl UnwindSafe for PoW

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +PoW in mcaptcha::api::v1::pow::routes - Rust

    Struct PoW

    Source
    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 str§verify_pow: &'static str§validate_captcha_token: &'static str§scope: &'static str

    Implementations§

    Source§

    impl PoW

    Source

    pub const fn new() -> Self

    Source

    pub fn get_config(&self) -> &str

    remove scope for $name route

    +
    Source

    pub fn verify_pow(&self) -> &str

    remove scope for $name route

    +
    Source

    pub fn validate_captcha_token(&self) -> &str

    remove scope for $name route

    +

    Auto Trait Implementations§

    §

    impl Freeze for PoW

    §

    impl RefUnwindSafe for PoW

    §

    impl Send for PoW

    §

    impl Sync for PoW

    §

    impl Unpin for PoW

    §

    impl UnwindSafe for PoW

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 0cc89360..50aaf82b 100644 --- a/mcaptcha/api/v1/pow/verify_pow/index.html +++ b/mcaptcha/api/v1/pow/verify_pow/index.html @@ -1,5 +1,4 @@ -mcaptcha::api::v1::pow::verify_pow - Rust -

    Module mcaptcha::api::v1::pow::verify_pow

    source ·
    Expand description

    PoW Verification module

    -

    Structs§

    • validation token that clients receive as proof for submiting -valid PoW
    • route handler that verifies PoW and issues a solution token -if verification is successful
    \ No newline at end of file +mcaptcha::api::v1::pow::verify_pow - Rust

    Module verify_pow

    Source
    Expand description

    PoW Verification module

    +

    Structs§

    ApiWork
    ValidationToken
    validation token that clients receive as proof for submiting +valid PoW
    verify_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.ApiWork.html b/mcaptcha/api/v1/pow/verify_pow/struct.ApiWork.html index 904cfdcb..35f67ca5 100644 --- a/mcaptcha/api/v1/pow/verify_pow/struct.ApiWork.html +++ b/mcaptcha/api/v1/pow/verify_pow/struct.ApiWork.html @@ -1,29 +1,50 @@ -ApiWork in mcaptcha::api::v1::pow::verify_pow - Rust -

    Struct mcaptcha::api::v1::pow::verify_pow::ApiWork

    source ·
    pub struct ApiWork {
    -    pub string: String,
    -    pub result: String,
    -    pub nonce: u64,
    -    pub key: String,
    -    pub time: Option<u32>,
    -    pub worker_type: Option<String>,
    -}

    Fields§

    §string: String§result: String§nonce: u64§key: String§time: Option<u32>§worker_type: Option<String>

    Trait Implementations§

    source§

    impl Clone for ApiWork

    source§

    fn clone(&self) -> ApiWork

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ApiWork

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for ApiWork

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<ApiWork> for Work

    source§

    fn from(value: ApiWork) -> Self

    Converts to this type from the input type.
    source§

    impl Serialize for ApiWork

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +ApiWork in mcaptcha::api::v1::pow::verify_pow - Rust

    Struct ApiWork

    Source
    pub struct ApiWork {
    +    pub string: String,
    +    pub result: String,
    +    pub nonce: u64,
    +    pub key: String,
    +    pub time: Option<u32>,
    +    pub worker_type: Option<String>,
    +}

    Fields§

    §string: String§result: String§nonce: u64§key: String§time: Option<u32>§worker_type: Option<String>

    Trait Implementations§

    Source§

    impl Clone for ApiWork

    Source§

    fn clone(&self) -> ApiWork

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for ApiWork

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for ApiWork

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<ApiWork> for Work

    Source§

    fn from(value: ApiWork) -> Self

    Converts to this type from the input type.
    Source§

    impl Serialize for ApiWork

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 347a9f8d..809ee506 100644 --- a/mcaptcha/api/v1/pow/verify_pow/struct.ValidationToken.html +++ b/mcaptcha/api/v1/pow/verify_pow/struct.ValidationToken.html @@ -1,26 +1,47 @@ -ValidationToken in mcaptcha::api::v1::pow::verify_pow - Rust -
    pub struct ValidationToken {
    -    pub token: String,
    +ValidationToken in mcaptcha::api::v1::pow::verify_pow - Rust

    Struct ValidationToken

    Source
    pub struct ValidationToken {
    +    pub token: String,
     }
    Expand description

    validation token that clients receive as proof for submiting valid PoW

    -

    Fields§

    §token: String

    Trait Implementations§

    source§

    impl Clone for ValidationToken

    source§

    fn clone(&self) -> ValidationToken

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ValidationToken

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for ValidationToken

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for ValidationToken

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §token: String

    Trait Implementations§

    Source§

    impl Clone for ValidationToken

    Source§

    fn clone(&self) -> ValidationToken

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for ValidationToken

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for ValidationToken

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for ValidationToken

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 b985ce75..01b6b908 100644 --- a/mcaptcha/api/v1/pow/verify_pow/struct.verify_pow.html +++ b/mcaptcha/api/v1/pow/verify_pow/struct.verify_pow.html @@ -1,20 +1,34 @@ -verify_pow in mcaptcha::api::v1::pow::verify_pow - Rust -
    pub struct verify_pow;
    Expand description

    route handler that verifies PoW and issues a solution token +verify_pow in mcaptcha::api::v1::pow::verify_pow - Rust

    Struct verify_pow

    Source
    pub struct verify_pow;
    Expand description

    route handler that verifies PoW and issues a solution token if verification is successful

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for verify_pow

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for verify_pow

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 394921de..647e41cc 100644 --- a/mcaptcha/api/v1/pow/verify_token/index.html +++ b/mcaptcha/api/v1/pow/verify_token/index.html @@ -1,3 +1,2 @@ -mcaptcha::api::v1::pow::verify_token - Rust -

    Module mcaptcha::api::v1::pow::verify_token

    source ·
    Expand description

    PoW success token module

    -

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::pow::verify_token - Rust

    Module verify_token

    Source
    Expand description

    PoW success token module

    +

    Structs§

    CaptchaValidateResp
    VerifyCaptchaResultPayload
    validate_captcha_token
    route handler 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 c99b0985..66c1e86f 100644 --- a/mcaptcha/api/v1/pow/verify_token/struct.CaptchaValidateResp.html +++ b/mcaptcha/api/v1/pow/verify_token/struct.CaptchaValidateResp.html @@ -1,24 +1,45 @@ -CaptchaValidateResp in mcaptcha::api::v1::pow::verify_token - Rust -
    pub struct CaptchaValidateResp {
    -    pub valid: bool,
    -}

    Fields§

    §valid: bool

    Trait Implementations§

    source§

    impl Clone for CaptchaValidateResp

    source§

    fn clone(&self) -> CaptchaValidateResp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for CaptchaValidateResp

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for CaptchaValidateResp

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for CaptchaValidateResp

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +CaptchaValidateResp in mcaptcha::api::v1::pow::verify_token - Rust

    Struct CaptchaValidateResp

    Source
    pub struct CaptchaValidateResp {
    +    pub valid: bool,
    +}

    Fields§

    §valid: bool

    Trait Implementations§

    Source§

    impl Clone for CaptchaValidateResp

    Source§

    fn clone(&self) -> CaptchaValidateResp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for CaptchaValidateResp

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for CaptchaValidateResp

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for CaptchaValidateResp

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/pow/verify_token/struct.VerifyCaptchaResultPayload.html b/mcaptcha/api/v1/pow/verify_token/struct.VerifyCaptchaResultPayload.html index 4312d993..6cae5547 100644 --- a/mcaptcha/api/v1/pow/verify_token/struct.VerifyCaptchaResultPayload.html +++ b/mcaptcha/api/v1/pow/verify_token/struct.VerifyCaptchaResultPayload.html @@ -1,26 +1,47 @@ -VerifyCaptchaResultPayload in mcaptcha::api::v1::pow::verify_token - Rust -
    pub struct VerifyCaptchaResultPayload {
    -    pub secret: String,
    -    pub key: String,
    -    pub token: String,
    -}

    Fields§

    §secret: String§key: String§token: String

    Trait Implementations§

    source§

    impl Clone for VerifyCaptchaResultPayload

    source§

    fn clone(&self) -> VerifyCaptchaResultPayload

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for VerifyCaptchaResultPayload

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for VerifyCaptchaResultPayload

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl From<VerifyCaptchaResultPayload> for VerifyCaptchaResult

    source§

    fn from(m: VerifyCaptchaResultPayload) -> Self

    Converts to this type from the input type.
    source§

    impl Serialize for VerifyCaptchaResultPayload

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +VerifyCaptchaResultPayload in mcaptcha::api::v1::pow::verify_token - Rust

    Struct VerifyCaptchaResultPayload

    Source
    pub struct VerifyCaptchaResultPayload {
    +    pub secret: String,
    +    pub key: String,
    +    pub token: String,
    +}

    Fields§

    §secret: String§key: String§token: String

    Trait Implementations§

    Source§

    impl Clone for VerifyCaptchaResultPayload

    Source§

    fn clone(&self) -> VerifyCaptchaResultPayload

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for VerifyCaptchaResultPayload

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for VerifyCaptchaResultPayload

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl From<VerifyCaptchaResultPayload> for VerifyCaptchaResult

    Source§

    fn from(m: VerifyCaptchaResultPayload) -> Self

    Converts to this type from the input type.
    Source§

    impl Serialize for VerifyCaptchaResultPayload

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 98d3c2ab..88d1ee4f 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 @@ -1,19 +1,33 @@ -validate_captcha_token in mcaptcha::api::v1::pow::verify_token - Rust -
    pub struct validate_captcha_token;
    Expand description

    route handler that validates a PoW solution token

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for validate_captcha_token

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +validate_captcha_token in mcaptcha::api::v1::pow::verify_token - Rust

    Struct validate_captcha_token

    Source
    pub struct validate_captcha_token;
    Expand description

    route handler that validates a PoW solution token

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for validate_captcha_token

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 8112b0e5..041b3102 100644 --- a/mcaptcha/api/v1/routes/constant.ROUTES.html +++ b/mcaptcha/api/v1/routes/constant.ROUTES.html @@ -1,2 +1 @@ -ROUTES in mcaptcha::api::v1::routes - Rust -

    Constant mcaptcha::api::v1::routes::ROUTES

    source ·
    pub const ROUTES: Routes;
    \ No newline at end of file +ROUTES in mcaptcha::api::v1::routes - Rust

    Constant 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 945dcbd0..71ff0aa8 100644 --- a/mcaptcha/api/v1/routes/index.html +++ b/mcaptcha/api/v1/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::routes - Rust -

    Module mcaptcha::api::v1::routes

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::api::v1::routes - Rust

    Module routes

    Source

    Structs§

    Routes

    Constants§

    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 fb45e084..47d47ad5 100644 --- a/mcaptcha/api/v1/routes/struct.Routes.html +++ b/mcaptcha/api/v1/routes/struct.Routes.html @@ -1,5 +1,4 @@ -Routes in mcaptcha::api::v1::routes - Rust -

    Struct mcaptcha::api::v1::routes::Routes

    source ·
    pub struct Routes {
    +Routes in mcaptcha::api::v1::routes - Rust

    Struct Routes

    Source
    pub struct Routes {
         pub auth: Auth,
         pub account: Account,
         pub captcha: Captcha,
    @@ -8,20 +7,35 @@
         pub survey: Survey,
         pub notifications: Notifications,
         pub stats: Stats,
    -}

    Fields§

    §auth: Auth§account: Account§captcha: Captcha§meta: Meta§pow: PoW§survey: Survey§notifications: Notifications§stats: Stats

    Implementations§

    source§

    impl Routes

    source

    const fn new() -> Routes

    Trait Implementations§

    source§

    impl GetLoginRoute for Routes

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §auth: Auth§account: Account§captcha: Captcha§meta: Meta§pow: PoW§survey: Survey§notifications: Notifications§stats: Stats

    Implementations§

    Source§

    impl Routes

    Source

    const fn new() -> Routes

    Trait Implementations§

    Source§

    impl GetLoginRoute for Routes

    Auto Trait Implementations§

    §

    impl Freeze for Routes

    §

    impl RefUnwindSafe for Routes

    §

    impl Send for Routes

    §

    impl Sync for Routes

    §

    impl Unpin for Routes

    §

    impl UnwindSafe for Routes

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html b/mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html index 397bfdc5..d0777629 100644 --- a/mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html +++ b/mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html @@ -1,25 +1,42 @@ -BuildDetailsBuilderError in mcaptcha::api::v1::stats - Rust -
    #[non_exhaustive]
    pub enum BuildDetailsBuilderError { - UninitializedField(&'static str), - ValidationError(String), +BuildDetailsBuilderError in mcaptcha::api::v1::stats - Rust

    Enum BuildDetailsBuilderError

    Source
    #[non_exhaustive]
    pub enum BuildDetailsBuilderError { + 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§

    source§

    impl Debug for BuildDetailsBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for BuildDetailsBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for BuildDetailsBuilderError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<String> for BuildDetailsBuilderError

    source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    source§

    impl From<UninitializedFieldError> for BuildDetailsBuilderError

    source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Debug for BuildDetailsBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for BuildDetailsBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for BuildDetailsBuilderError

    1.30.0 · Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl From<String> for BuildDetailsBuilderError

    Source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    Source§

    impl From<UninitializedFieldError> for BuildDetailsBuilderError

    Source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html b/mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html index 655df40f..8a6e841b 100644 --- a/mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html +++ b/mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html @@ -1,25 +1,42 @@ -PercentileReqBuilderError in mcaptcha::api::v1::stats - Rust -
    #[non_exhaustive]
    pub enum PercentileReqBuilderError { - UninitializedField(&'static str), - ValidationError(String), +PercentileReqBuilderError in mcaptcha::api::v1::stats - Rust

    Enum PercentileReqBuilderError

    Source
    #[non_exhaustive]
    pub enum PercentileReqBuilderError { + UninitializedField(&'static str), + ValidationError(String), }
    Expand description

    Error type for PercentileReqBuilder

    -

    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§

    source§

    impl Debug for PercentileReqBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for PercentileReqBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for PercentileReqBuilderError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<String> for PercentileReqBuilderError

    source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    source§

    impl From<UninitializedFieldError> for PercentileReqBuilderError

    source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Debug for PercentileReqBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for PercentileReqBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for PercentileReqBuilderError

    1.30.0 · Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl From<String> for PercentileReqBuilderError

    Source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    Source§

    impl From<UninitializedFieldError> for PercentileReqBuilderError

    Source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html b/mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html index d54ffce2..1cceb070 100644 --- a/mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html +++ b/mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html @@ -1,25 +1,42 @@ -PercentileRespBuilderError in mcaptcha::api::v1::stats - Rust -
    #[non_exhaustive]
    pub enum PercentileRespBuilderError { - UninitializedField(&'static str), - ValidationError(String), +PercentileRespBuilderError in mcaptcha::api::v1::stats - Rust

    Enum PercentileRespBuilderError

    Source
    #[non_exhaustive]
    pub enum PercentileRespBuilderError { + UninitializedField(&'static str), + ValidationError(String), }
    Expand description

    Error type for PercentileRespBuilder

    -

    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§

    source§

    impl Debug for PercentileRespBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for PercentileRespBuilderError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for PercentileRespBuilderError

    1.30.0 · source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<String> for PercentileRespBuilderError

    source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    source§

    impl From<UninitializedFieldError> for PercentileRespBuilderError

    source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    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§

    Source§

    impl Debug for PercentileRespBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for PercentileRespBuilderError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for PercentileRespBuilderError

    1.30.0 · Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl From<String> for PercentileRespBuilderError

    Source§

    fn from(s: String) -> Self

    Converts to this type from the input type.
    Source§

    impl From<UninitializedFieldError> for PercentileRespBuilderError

    Source§

    fn from(s: UninitializedFieldError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/fn.percentile_bench_runner.html b/mcaptcha/api/v1/stats/fn.percentile_bench_runner.html index b88891d5..33adb245 100644 --- a/mcaptcha/api/v1/stats/fn.percentile_bench_runner.html +++ b/mcaptcha/api/v1/stats/fn.percentile_bench_runner.html @@ -1,5 +1,4 @@ -percentile_bench_runner in mcaptcha::api::v1::stats - Rust -
    pub async fn percentile_bench_runner(
    +percentile_bench_runner in mcaptcha::api::v1::stats - Rust

    Function percentile_bench_runner

    Source
    pub async fn percentile_bench_runner(
         data: &AppData,
    -    req: &PercentileReq
    -) -> Result<PercentileResp, ServiceError>
    \ No newline at end of file + req: &PercentileReq, +) -> Result<PercentileResp, ServiceError>
    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/fn.services.html b/mcaptcha/api/v1/stats/fn.services.html index 7b38cb8a..48d8a7f2 100644 --- a/mcaptcha/api/v1/stats/fn.services.html +++ b/mcaptcha/api/v1/stats/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::stats - Rust -

    Function mcaptcha::api::v1::stats::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::stats - Rust

    Function services

    Source
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/index.html b/mcaptcha/api/v1/stats/index.html index 1836b436..f696096e 100644 --- a/mcaptcha/api/v1/stats/index.html +++ b/mcaptcha/api/v1/stats/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::stats - Rust -

    Module mcaptcha::api::v1::stats

    source ·

    Modules§

    Structs§

    Enums§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::stats - Rust

    Module stats

    Source

    Modules§

    routes

    Structs§

    BuildDetails
    BuildDetailsBuilder
    Builder for BuildDetails.
    PercentileReq
    Health check return datatype
    PercentileReqBuilder
    Builder for PercentileReq.
    PercentileResp
    Health check return datatype
    PercentileRespBuilder
    Builder for PercentileResp.
    percentile_benches
    Get difficulty factor with max time limit for percentile of stats

    Enums§

    BuildDetailsBuilderError
    Error type for BuildDetailsBuilder
    PercentileReqBuilderError
    Error type for PercentileReqBuilder
    PercentileRespBuilderError
    Error type for PercentileRespBuilder

    Functions§

    percentile_bench_runner
    services
    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/routes/index.html b/mcaptcha/api/v1/stats/routes/index.html index 138c1458..69cd4250 100644 --- a/mcaptcha/api/v1/stats/routes/index.html +++ b/mcaptcha/api/v1/stats/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::stats::routes - Rust -

    Module mcaptcha::api::v1::stats::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::stats::routes - Rust

    Module routes

    Source

    Structs§

    Stats
    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/routes/struct.Stats.html b/mcaptcha/api/v1/stats/routes/struct.Stats.html index 90cef534..aa2f4798 100644 --- a/mcaptcha/api/v1/stats/routes/struct.Stats.html +++ b/mcaptcha/api/v1/stats/routes/struct.Stats.html @@ -1,31 +1,49 @@ -Stats in mcaptcha::api::v1::stats::routes - Rust -

    Struct mcaptcha::api::v1::stats::routes::Stats

    source ·
    pub struct Stats {
    -    pub percentile_benches: &'static str,
    -}

    Fields§

    §percentile_benches: &'static str

    Implementations§

    source§

    impl Stats

    source

    pub const fn new() -> Self

    Trait Implementations§

    source§

    impl Clone for Stats

    source§

    fn clone(&self) -> Stats

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Stats

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Deserialize<'static> for Stats

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'static>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Stats

    source§

    fn eq(&self, other: &Stats) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for Stats

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for Stats

    source§

    impl StructuralPartialEq for Stats

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Stats

    §

    impl Send for Stats

    §

    impl Sync for Stats

    §

    impl Unpin for Stats

    §

    impl UnwindSafe for Stats

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Stats in mcaptcha::api::v1::stats::routes - Rust

    Struct Stats

    Source
    pub struct Stats {
    +    pub percentile_benches: &'static str,
    +}

    Fields§

    §percentile_benches: &'static str

    Implementations§

    Source§

    impl Stats

    Source

    pub const fn new() -> Self

    Trait Implementations§

    Source§

    impl Clone for Stats

    Source§

    fn clone(&self) -> Stats

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Stats

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Deserialize<'static> for Stats

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'static>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Stats

    Source§

    fn eq(&self, other: &Stats) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for Stats

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl Eq for Stats

    Source§

    impl StructuralPartialEq for Stats

    Auto Trait Implementations§

    §

    impl Freeze for Stats

    §

    impl RefUnwindSafe for Stats

    §

    impl Send for Stats

    §

    impl Sync for Stats

    §

    impl Unpin for Stats

    §

    impl UnwindSafe for Stats

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/struct.BuildDetails.html b/mcaptcha/api/v1/stats/struct.BuildDetails.html index 8d91a550..655a3213 100644 --- a/mcaptcha/api/v1/stats/struct.BuildDetails.html +++ b/mcaptcha/api/v1/stats/struct.BuildDetails.html @@ -1,24 +1,45 @@ -BuildDetails in mcaptcha::api::v1::stats - Rust -

    Struct mcaptcha::api::v1::stats::BuildDetails

    source ·
    pub struct BuildDetails {
    -    pub version: &'static str,
    -    pub git_commit_hash: &'static str,
    -}

    Fields§

    §version: &'static str§git_commit_hash: &'static str

    Trait Implementations§

    source§

    impl Clone for BuildDetails

    source§

    fn clone(&self) -> BuildDetails

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for BuildDetails

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Deserialize<'static> for BuildDetails

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'static>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for BuildDetails

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +BuildDetails in mcaptcha::api::v1::stats - Rust

    Struct BuildDetails

    Source
    pub struct BuildDetails {
    +    pub version: &'static str,
    +    pub git_commit_hash: &'static str,
    +}

    Fields§

    §version: &'static str§git_commit_hash: &'static str

    Trait Implementations§

    Source§

    impl Clone for BuildDetails

    Source§

    fn clone(&self) -> BuildDetails

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for BuildDetails

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Deserialize<'static> for BuildDetails

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'static>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for BuildDetails

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/struct.BuildDetailsBuilder.html b/mcaptcha/api/v1/stats/struct.BuildDetailsBuilder.html index 4f37f6b0..a1730dea 100644 --- a/mcaptcha/api/v1/stats/struct.BuildDetailsBuilder.html +++ b/mcaptcha/api/v1/stats/struct.BuildDetailsBuilder.html @@ -1,27 +1,44 @@ -BuildDetailsBuilder in mcaptcha::api::v1::stats - Rust -
    pub struct BuildDetailsBuilder {
    -    version: Option<&'static str>,
    -    git_commit_hash: Option<&'static str>,
    +BuildDetailsBuilder in mcaptcha::api::v1::stats - Rust

    Struct BuildDetailsBuilder

    Source
    pub struct BuildDetailsBuilder {
    +    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§

    source§

    impl BuildDetailsBuilder

    source

    pub fn version(&mut self, value: &'static str) -> &mut Self

    source

    pub fn git_commit_hash(&mut self, value: &'static str) -> &mut Self

    source

    pub fn build(&self) -> Result<BuildDetails, BuildDetailsBuilderError>

    Builds a new BuildDetails.

    +

    Fields§

    §version: Option<&'static str>§git_commit_hash: Option<&'static str>

    Implementations§

    Source§

    impl BuildDetailsBuilder

    Source

    pub fn version(&mut self, value: &'static str) -> &mut Self

    Source

    pub fn git_commit_hash(&mut self, value: &'static str) -> &mut Self

    Source

    pub fn build(&self) -> Result<BuildDetails, BuildDetailsBuilderError>

    Builds a new BuildDetails.

    §Errors

    If a required field has not been initialized.

    -
    source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    -

    Trait Implementations§

    source§

    impl Clone for BuildDetailsBuilder

    source§

    fn clone(&self) -> BuildDetailsBuilder

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for BuildDetailsBuilder

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    Source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    +

    Trait Implementations§

    Source§

    impl Clone for BuildDetailsBuilder

    Source§

    fn clone(&self) -> BuildDetailsBuilder

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for BuildDetailsBuilder

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/struct.PercentileReq.html b/mcaptcha/api/v1/stats/struct.PercentileReq.html index c9ac0e76..0be5dda9 100644 --- a/mcaptcha/api/v1/stats/struct.PercentileReq.html +++ b/mcaptcha/api/v1/stats/struct.PercentileReq.html @@ -1,26 +1,47 @@ -PercentileReq in mcaptcha::api::v1::stats - Rust -
    pub struct PercentileReq {
    -    pub time: u32,
    -    pub percentile: f64,
    +PercentileReq in mcaptcha::api::v1::stats - Rust

    Struct PercentileReq

    Source
    pub struct PercentileReq {
    +    pub time: u32,
    +    pub percentile: f64,
     }
    Expand description

    Health check return datatype

    -

    Fields§

    §time: u32§percentile: f64

    Trait Implementations§

    source§

    impl Clone for PercentileReq

    source§

    fn clone(&self) -> PercentileReq

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PercentileReq

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for PercentileReq

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for PercentileReq

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §time: u32§percentile: f64

    Trait Implementations§

    Source§

    impl Clone for PercentileReq

    Source§

    fn clone(&self) -> PercentileReq

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for PercentileReq

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for PercentileReq

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for PercentileReq

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/struct.PercentileReqBuilder.html b/mcaptcha/api/v1/stats/struct.PercentileReqBuilder.html index 6f4409b4..26e83d3f 100644 --- a/mcaptcha/api/v1/stats/struct.PercentileReqBuilder.html +++ b/mcaptcha/api/v1/stats/struct.PercentileReqBuilder.html @@ -1,27 +1,44 @@ -PercentileReqBuilder in mcaptcha::api::v1::stats - Rust -
    pub struct PercentileReqBuilder {
    -    time: Option<u32>,
    -    percentile: Option<f64>,
    +PercentileReqBuilder in mcaptcha::api::v1::stats - Rust

    Struct PercentileReqBuilder

    Source
    pub struct PercentileReqBuilder {
    +    time: Option<u32>,
    +    percentile: Option<f64>,
     }
    Expand description

    Builder for PercentileReq.

    -

    Fields§

    §time: Option<u32>§percentile: Option<f64>

    Implementations§

    source§

    impl PercentileReqBuilder

    source

    pub fn time(&mut self, value: u32) -> &mut Self

    source

    pub fn percentile(&mut self, value: f64) -> &mut Self

    source

    pub fn build(&self) -> Result<PercentileReq, PercentileReqBuilderError>

    Builds a new PercentileReq.

    +

    Fields§

    §time: Option<u32>§percentile: Option<f64>

    Implementations§

    Source§

    impl PercentileReqBuilder

    Source

    pub fn time(&mut self, value: u32) -> &mut Self

    Source

    pub fn percentile(&mut self, value: f64) -> &mut Self

    Source

    pub fn build(&self) -> Result<PercentileReq, PercentileReqBuilderError>

    Builds a new PercentileReq.

    §Errors

    If a required field has not been initialized.

    -
    source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    -

    Trait Implementations§

    source§

    impl Clone for PercentileReqBuilder

    source§

    fn clone(&self) -> PercentileReqBuilder

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for PercentileReqBuilder

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    Source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    +

    Trait Implementations§

    Source§

    impl Clone for PercentileReqBuilder

    Source§

    fn clone(&self) -> PercentileReqBuilder

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for PercentileReqBuilder

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/struct.PercentileResp.html b/mcaptcha/api/v1/stats/struct.PercentileResp.html index b5325556..774b372f 100644 --- a/mcaptcha/api/v1/stats/struct.PercentileResp.html +++ b/mcaptcha/api/v1/stats/struct.PercentileResp.html @@ -1,25 +1,46 @@ -PercentileResp in mcaptcha::api::v1::stats - Rust -
    pub struct PercentileResp {
    -    pub difficulty_factor: Option<u32>,
    +PercentileResp in mcaptcha::api::v1::stats - Rust

    Struct PercentileResp

    Source
    pub struct PercentileResp {
    +    pub difficulty_factor: Option<u32>,
     }
    Expand description

    Health check return datatype

    -

    Fields§

    §difficulty_factor: Option<u32>

    Trait Implementations§

    source§

    impl Clone for PercentileResp

    source§

    fn clone(&self) -> PercentileResp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for PercentileResp

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for PercentileResp

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for PercentileResp

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §difficulty_factor: Option<u32>

    Trait Implementations§

    Source§

    impl Clone for PercentileResp

    Source§

    fn clone(&self) -> PercentileResp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for PercentileResp

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for PercentileResp

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for PercentileResp

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/struct.PercentileRespBuilder.html b/mcaptcha/api/v1/stats/struct.PercentileRespBuilder.html index 17812f06..fc9f8f18 100644 --- a/mcaptcha/api/v1/stats/struct.PercentileRespBuilder.html +++ b/mcaptcha/api/v1/stats/struct.PercentileRespBuilder.html @@ -1,26 +1,43 @@ -PercentileRespBuilder in mcaptcha::api::v1::stats - Rust -
    pub struct PercentileRespBuilder {
    -    difficulty_factor: Option<Option<u32>>,
    +PercentileRespBuilder in mcaptcha::api::v1::stats - Rust

    Struct PercentileRespBuilder

    Source
    pub struct PercentileRespBuilder {
    +    difficulty_factor: Option<Option<u32>>,
     }
    Expand description

    Builder for PercentileResp.

    -

    Fields§

    §difficulty_factor: Option<Option<u32>>

    Implementations§

    source§

    impl PercentileRespBuilder

    source

    pub fn difficulty_factor(&mut self, value: Option<u32>) -> &mut Self

    source

    pub fn build(&self) -> Result<PercentileResp, PercentileRespBuilderError>

    Builds a new PercentileResp.

    +

    Fields§

    §difficulty_factor: Option<Option<u32>>

    Implementations§

    Source§

    impl PercentileRespBuilder

    Source

    pub fn difficulty_factor(&mut self, value: Option<u32>) -> &mut Self

    Source

    pub fn build(&self) -> Result<PercentileResp, PercentileRespBuilderError>

    Builds a new PercentileResp.

    §Errors

    If a required field has not been initialized.

    -
    source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    -

    Trait Implementations§

    source§

    impl Clone for PercentileRespBuilder

    source§

    fn clone(&self) -> PercentileRespBuilder

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for PercentileRespBuilder

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    Source

    fn create_empty() -> Self

    Create an empty builder, with all fields set to None or PhantomData.

    +

    Trait Implementations§

    Source§

    impl Clone for PercentileRespBuilder

    Source§

    fn clone(&self) -> PercentileRespBuilder

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for PercentileRespBuilder

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/stats/struct.percentile_benches.html b/mcaptcha/api/v1/stats/struct.percentile_benches.html index 74cb3230..82061d74 100644 --- a/mcaptcha/api/v1/stats/struct.percentile_benches.html +++ b/mcaptcha/api/v1/stats/struct.percentile_benches.html @@ -1,19 +1,33 @@ -percentile_benches in mcaptcha::api::v1::stats - Rust -
    pub struct percentile_benches;
    Expand description

    Get difficulty factor with max time limit for percentile of stats

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for percentile_benches

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +percentile_benches in mcaptcha::api::v1::stats - Rust

    Struct percentile_benches

    Source
    pub struct percentile_benches;
    Expand description

    Get difficulty factor with max time limit for percentile of stats

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for percentile_benches

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/struct.RedirectQuery.html b/mcaptcha/api/v1/struct.RedirectQuery.html index e9f9519e..d47db66b 100644 --- a/mcaptcha/api/v1/struct.RedirectQuery.html +++ b/mcaptcha/api/v1/struct.RedirectQuery.html @@ -1,22 +1,36 @@ -RedirectQuery in mcaptcha::api::v1 - Rust -

    Struct mcaptcha::api::v1::RedirectQuery

    source ·
    pub struct RedirectQuery {
    -    pub redirect_to: Option<String>,
    -}

    Fields§

    §redirect_to: Option<String>

    Trait Implementations§

    source§

    impl<'de> Deserialize<'de> for RedirectQuery

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +RedirectQuery in mcaptcha::api::v1 - Rust

    Struct RedirectQuery

    Source
    pub struct RedirectQuery {
    +    pub redirect_to: Option<String>,
    +}

    Fields§

    §redirect_to: Option<String>

    Trait Implementations§

    Source§

    impl<'de> Deserialize<'de> for RedirectQuery

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/fn.services.html b/mcaptcha/api/v1/survey/fn.services.html index ef23ed6b..f2fa90a1 100644 --- a/mcaptcha/api/v1/survey/fn.services.html +++ b/mcaptcha/api/v1/survey/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::api::v1::survey - Rust -

    Function mcaptcha::api::v1::survey::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::api::v1::survey - Rust

    Function services

    Source
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/index.html b/mcaptcha/api/v1/survey/index.html index baa2931c..fd01db1a 100644 --- a/mcaptcha/api/v1/survey/index.html +++ b/mcaptcha/api/v1/survey/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::survey - Rust -

    Module mcaptcha::api::v1::survey

    source ·

    Modules§

    Structs§

    Functions§

    \ No newline at end of file +mcaptcha::api::v1::survey - Rust

    Module survey

    Source

    Modules§

    routes

    Structs§

    Page
    SurveySecretUpload 🔒
    download
    emits build details of the bninary
    secret
    mCaptcha/survey upload secret route

    Functions§

    services
    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/routes/index.html b/mcaptcha/api/v1/survey/routes/index.html index fc839ca2..f7f8f6fc 100644 --- a/mcaptcha/api/v1/survey/routes/index.html +++ b/mcaptcha/api/v1/survey/routes/index.html @@ -1,2 +1 @@ -mcaptcha::api::v1::survey::routes - Rust -

    Module mcaptcha::api::v1::survey::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::api::v1::survey::routes - Rust

    Module routes

    Source

    Structs§

    Survey
    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/routes/struct.Survey.html b/mcaptcha/api/v1/survey/routes/struct.Survey.html index bd4c3170..28b228a5 100644 --- a/mcaptcha/api/v1/survey/routes/struct.Survey.html +++ b/mcaptcha/api/v1/survey/routes/struct.Survey.html @@ -1,21 +1,35 @@ -Survey in mcaptcha::api::v1::survey::routes - Rust -

    Struct mcaptcha::api::v1::survey::routes::Survey

    source ·
    pub struct Survey {
    -    pub download: &'static str,
    -    pub secret: &'static str,
    -}

    Fields§

    §download: &'static str§secret: &'static str

    Implementations§

    source§

    impl Survey

    source

    pub const fn new() -> Self

    source

    pub fn get_download_route(&self, survey_id: &str, page: usize) -> String

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Survey in mcaptcha::api::v1::survey::routes - Rust

    Struct Survey

    Source
    pub struct Survey {
    +    pub download: &'static str,
    +    pub secret: &'static str,
    +}

    Fields§

    §download: &'static str§secret: &'static str

    Implementations§

    Source§

    impl Survey

    Source

    pub const fn new() -> Self

    Source

    pub fn get_download_route(&self, survey_id: &str, page: usize) -> String

    Auto Trait Implementations§

    §

    impl Freeze for Survey

    §

    impl RefUnwindSafe for Survey

    §

    impl Send for Survey

    §

    impl Sync for Survey

    §

    impl Unpin for Survey

    §

    impl UnwindSafe for Survey

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/struct.Page.html b/mcaptcha/api/v1/survey/struct.Page.html index 275899a1..fb7d3e77 100644 --- a/mcaptcha/api/v1/survey/struct.Page.html +++ b/mcaptcha/api/v1/survey/struct.Page.html @@ -1,32 +1,50 @@ -Page in mcaptcha::api::v1::survey - Rust -

    Struct mcaptcha::api::v1::survey::Page

    source ·
    pub struct Page {
    -    pub page: usize,
    -}

    Fields§

    §page: usize

    Trait Implementations§

    source§

    impl Clone for Page

    source§

    fn clone(&self) -> Page

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Page

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Page

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Page

    source§

    fn eq(&self, other: &Page) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for Page

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for Page

    source§

    impl StructuralPartialEq for Page

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Page

    §

    impl Send for Page

    §

    impl Sync for Page

    §

    impl Unpin for Page

    §

    impl UnwindSafe for Page

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Page in mcaptcha::api::v1::survey - Rust

    Struct Page

    Source
    pub struct Page {
    +    pub page: usize,
    +}

    Fields§

    §page: usize

    Trait Implementations§

    Source§

    impl Clone for Page

    Source§

    fn clone(&self) -> Page

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Page

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Page

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Page

    Source§

    fn eq(&self, other: &Page) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for Page

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl Eq for Page

    Source§

    impl StructuralPartialEq for Page

    Auto Trait Implementations§

    §

    impl Freeze for Page

    §

    impl RefUnwindSafe for Page

    §

    impl Send for Page

    §

    impl Sync for Page

    §

    impl Unpin for Page

    §

    impl UnwindSafe for Page

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/struct.SurveySecretUpload.html b/mcaptcha/api/v1/survey/struct.SurveySecretUpload.html index 7c111d99..712693f2 100644 --- a/mcaptcha/api/v1/survey/struct.SurveySecretUpload.html +++ b/mcaptcha/api/v1/survey/struct.SurveySecretUpload.html @@ -1,24 +1,42 @@ -SurveySecretUpload in mcaptcha::api::v1::survey - Rust -
    struct SurveySecretUpload {
    -    secret: String,
    -    auth_token: String,
    -}

    Fields§

    §secret: String§auth_token: String

    Trait Implementations§

    source§

    impl<'de> Deserialize<'de> for SurveySecretUpload

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for SurveySecretUpload

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +SurveySecretUpload in mcaptcha::api::v1::survey - Rust

    Struct SurveySecretUpload

    Source
    struct SurveySecretUpload {
    +    secret: String,
    +    auth_token: String,
    +}

    Fields§

    §secret: String§auth_token: String

    Trait Implementations§

    Source§

    impl<'de> Deserialize<'de> for SurveySecretUpload

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for SurveySecretUpload

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/struct.download.html b/mcaptcha/api/v1/survey/struct.download.html index 4781fc77..60fe153f 100644 --- a/mcaptcha/api/v1/survey/struct.download.html +++ b/mcaptcha/api/v1/survey/struct.download.html @@ -1,19 +1,33 @@ -download in mcaptcha::api::v1::survey - Rust -

    Struct mcaptcha::api::v1::survey::download

    source ·
    pub struct download;
    Expand description

    emits build details of the bninary

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for download

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +download in mcaptcha::api::v1::survey - Rust

    Struct download

    Source
    pub struct download;
    Expand description

    emits build details of the bninary

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for download

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/api/v1/survey/struct.secret.html b/mcaptcha/api/v1/survey/struct.secret.html index 8f08d383..50665c6f 100644 --- a/mcaptcha/api/v1/survey/struct.secret.html +++ b/mcaptcha/api/v1/survey/struct.secret.html @@ -1,19 +1,33 @@ -secret in mcaptcha::api::v1::survey - Rust -

    Struct mcaptcha::api::v1::survey::secret

    source ·
    pub struct secret;
    Expand description

    mCaptcha/survey upload secret route

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for secret

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +secret in mcaptcha::api::v1::survey - Rust

    Struct secret

    Source
    pub struct secret;
    Expand description

    mCaptcha/survey upload secret route

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for secret

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for secret

    §

    impl RefUnwindSafe for secret

    §

    impl Send for secret

    §

    impl Sync for secret

    §

    impl Unpin for secret

    §

    impl UnwindSafe for secret

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/constant.CACHE_AGE.html b/mcaptcha/constant.CACHE_AGE.html index 0cf2f61e..05697eec 100644 --- a/mcaptcha/constant.CACHE_AGE.html +++ b/mcaptcha/constant.CACHE_AGE.html @@ -1,2 +1 @@ -CACHE_AGE in mcaptcha - Rust -

    Constant mcaptcha::CACHE_AGE

    source ·
    pub const CACHE_AGE: u32 = 604800;
    \ No newline at end of file +CACHE_AGE in mcaptcha - Rust

    Constant 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 b35a2aaa..7a8aa2d5 100644 --- a/mcaptcha/constant.COMPILED_DATE.html +++ b/mcaptcha/constant.COMPILED_DATE.html @@ -1,2 +1 @@ -COMPILED_DATE in mcaptcha - Rust -

    Constant mcaptcha::COMPILED_DATE

    source ·
    pub const COMPILED_DATE: &str = "2024April2024-04-17";
    \ No newline at end of file +COMPILED_DATE in mcaptcha - Rust

    Constant COMPILED_DATE

    Source
    pub const COMPILED_DATE: &str = "2025October2025-10-02";
    \ No newline at end of file diff --git a/mcaptcha/constant.DOCS.html b/mcaptcha/constant.DOCS.html index eced0e66..ca633aab 100644 --- a/mcaptcha/constant.DOCS.html +++ b/mcaptcha/constant.DOCS.html @@ -1,2 +1 @@ -DOCS in mcaptcha - Rust -

    Constant mcaptcha::DOCS

    source ·
    pub const DOCS: Docs;
    \ No newline at end of file +DOCS in mcaptcha - Rust

    Constant 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 9127fa7f..117e6758 100644 --- a/mcaptcha/constant.GIT_COMMIT_HASH.html +++ b/mcaptcha/constant.GIT_COMMIT_HASH.html @@ -1,2 +1 @@ -GIT_COMMIT_HASH in mcaptcha - Rust -

    Constant mcaptcha::GIT_COMMIT_HASH

    source ·
    pub const GIT_COMMIT_HASH: &str = "9922c233220751e9611b42414ecd82fcde757480";
    \ No newline at end of file +GIT_COMMIT_HASH in mcaptcha - Rust

    Constant GIT_COMMIT_HASH

    Source
    pub const GIT_COMMIT_HASH: &str = "89d49c63d270c565bb632f48da13a58160f1d0f5";
    \ No newline at end of file diff --git a/mcaptcha/constant.PAGES.html b/mcaptcha/constant.PAGES.html index 9645a1fc..3c039dbe 100644 --- a/mcaptcha/constant.PAGES.html +++ b/mcaptcha/constant.PAGES.html @@ -1,2 +1 @@ -PAGES in mcaptcha - Rust -

    Constant mcaptcha::PAGES

    source ·
    pub const PAGES: Routes;
    \ No newline at end of file +PAGES in mcaptcha - Rust

    Constant 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 27ff24d9..3eb44780 100644 --- a/mcaptcha/constant.PKG_DESCRIPTION.html +++ b/mcaptcha/constant.PKG_DESCRIPTION.html @@ -1,2 +1 @@ -PKG_DESCRIPTION in mcaptcha - Rust -

    Constant mcaptcha::PKG_DESCRIPTION

    source ·
    pub const PKG_DESCRIPTION: &str = "mCaptcha - a PoW-based CAPTCHA system";
    \ No newline at end of file +PKG_DESCRIPTION in mcaptcha - Rust

    Constant 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 48e7a400..c69c9e79 100644 --- a/mcaptcha/constant.PKG_HOMEPAGE.html +++ b/mcaptcha/constant.PKG_HOMEPAGE.html @@ -1,2 +1 @@ -PKG_HOMEPAGE in mcaptcha - Rust -

    Constant mcaptcha::PKG_HOMEPAGE

    source ·
    pub const PKG_HOMEPAGE: &str = "https://mcaptcha.org";
    \ No newline at end of file +PKG_HOMEPAGE in mcaptcha - Rust

    Constant 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 3207f33d..2e78fbc4 100644 --- a/mcaptcha/constant.PKG_NAME.html +++ b/mcaptcha/constant.PKG_NAME.html @@ -1,2 +1 @@ -PKG_NAME in mcaptcha - Rust -

    Constant mcaptcha::PKG_NAME

    source ·
    pub const PKG_NAME: &str = "mcaptcha";
    \ No newline at end of file +PKG_NAME in mcaptcha - Rust

    Constant 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 86d092c6..0e4b46e8 100644 --- a/mcaptcha/constant.V1_API_ROUTES.html +++ b/mcaptcha/constant.V1_API_ROUTES.html @@ -1,2 +1 @@ -V1_API_ROUTES in mcaptcha - Rust -

    Constant mcaptcha::V1_API_ROUTES

    source ·
    pub const V1_API_ROUTES: Routes;
    \ No newline at end of file +V1_API_ROUTES in mcaptcha - Rust

    Constant 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 5b3481d2..f0f2f4c2 100644 --- a/mcaptcha/constant.VERSION.html +++ b/mcaptcha/constant.VERSION.html @@ -1,2 +1 @@ -VERSION in mcaptcha - Rust -

    Constant mcaptcha::VERSION

    source ·
    pub const VERSION: &str = "0.1.0";
    \ No newline at end of file +VERSION in mcaptcha - Rust

    Constant 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 d644329a..8289072f 100644 --- a/mcaptcha/constant.WIDGET_ROUTES.html +++ b/mcaptcha/constant.WIDGET_ROUTES.html @@ -1,2 +1 @@ -WIDGET_ROUTES in mcaptcha - Rust -

    Constant mcaptcha::WIDGET_ROUTES

    source ·
    pub const WIDGET_ROUTES: Widget;
    \ No newline at end of file +WIDGET_ROUTES in mcaptcha - Rust

    Constant 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 4bd20171..fd817353 100644 --- a/mcaptcha/data/enum.SystemGroup.html +++ b/mcaptcha/data/enum.SystemGroup.html @@ -1,35 +1,49 @@ -SystemGroup in mcaptcha::data - Rust -
    pub enum SystemGroup {
    +SystemGroup in mcaptcha::data - Rust

    Enum SystemGroup

    Source
    pub enum SystemGroup {
         Embedded(System<HashCache, Master>),
         Redis(System<RedisCache, Master>),
     }
    Expand description

    Represents mCaptcha cache and master system. When Redis is configured, SystemGroup::Redis is used and in its absence, SystemGroup::Embedded is used

    -

    Variants§

    §

    Embedded(System<HashCache, Master>)

    §

    Redis(System<RedisCache, Master>)

    Implementations§

    source§

    impl SystemGroup

    source

    pub async fn get_pow(&self, msg: String) -> CaptchaResult<Option<PoWConfig>>

    source

    pub async fn verify_pow( +

    Variants§

    §

    Embedded(System<HashCache, Master>)

    §

    Redis(System<RedisCache, Master>)

    Implementations§

    Source§

    impl SystemGroup

    Source

    pub async fn get_pow(&self, msg: String) -> CaptchaResult<Option<PoWConfig>>

    Source

    pub async fn verify_pow( &self, msg: Work, - ip: String -) -> CaptchaResult<(String, u32)>

    source

    pub async fn validate_verification_tokens( + ip: String, +) -> CaptchaResult<(String, u32)>

    Source

    pub async fn validate_verification_tokens( &self, - msg: VerifyCaptchaResult -) -> CaptchaResult<bool>

    source

    pub async fn add_site(&self, msg: AddSite) -> Result<(), ServiceError>

    source

    pub async fn rename(&self, msg: Rename) -> Result<(), ServiceError>

    source

    pub async fn remove(&self, msg: RemoveCaptcha) -> Result<(), ServiceError>

    source

    fn new_system<A: Save, B: MasterTrait>( - s: &Settings, + msg: VerifyCaptchaResult, +) -> CaptchaResult<bool>

    Source

    pub async fn add_site(&self, msg: AddSite) -> Result<(), ServiceError>

    Source

    pub async fn rename(&self, msg: Rename) -> Result<(), ServiceError>

    Source

    pub async fn remove(&self, msg: RemoveCaptcha) -> Result<(), ServiceError>

    Source

    fn new_system<A: Save, B: MasterTrait>( + s: &Settings, m: Addr<B>, - c: Addr<A> -) -> System<A, B>

    source

    async fn new(s: &Settings) -> Self

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + c: Addr<A>, +) -> System<A, B>
    Source

    async fn new(s: &Settings) -> Self

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/data/index.html b/mcaptcha/data/index.html index 16ea6f5a..8f2e703b 100644 --- a/mcaptcha/data/index.html +++ b/mcaptcha/data/index.html @@ -1,5 +1,4 @@ -mcaptcha::data - Rust -

    Module mcaptcha::data

    source ·
    Expand description

    App data: redis cache, database connections, etc.

    -

    Macros§

    Structs§

    Enums§

    Type Aliases§

    • Mailer data type AsyncSmtpTransport
    \ No newline at end of file +in its absence, SystemGroup::Embedded is used

    Type Aliases§

    Mailer
    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 f1bfb693..9610a364 100644 --- a/mcaptcha/data/macro.enum_system_actor.html +++ b/mcaptcha/data/macro.enum_system_actor.html @@ -1,4 +1,3 @@ -enum_system_actor in mcaptcha::data - Rust -
    macro_rules! enum_system_actor {
    -    ($name:ident, $type:ident) => { ... };
    -}
    \ No newline at end of file +enum_system_actor in mcaptcha::data - Rust

    Macro 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 41d558dc..07dcb583 100644 --- a/mcaptcha/data/macro.enum_system_wrapper.html +++ b/mcaptcha/data/macro.enum_system_wrapper.html @@ -1,4 +1,3 @@ -enum_system_wrapper in mcaptcha::data - Rust -
    macro_rules! enum_system_wrapper {
    -    ($name:ident, $type:ty, $return_type:ty) => { ... };
    -}
    \ No newline at end of file +enum_system_wrapper in mcaptcha::data - Rust

    Macro 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 0bac90ac..fc6968f3 100644 --- a/mcaptcha/data/struct.Data.html +++ b/mcaptcha/data/struct.Data.html @@ -1,35 +1,49 @@ -Data in mcaptcha::data - Rust -

    Struct mcaptcha::data::Data

    source ·
    pub struct Data {
    -    pub db: Box<dyn MCDatabase>,
    +Data in mcaptcha::data - Rust

    Struct Data

    Source
    pub struct Data {
    +    pub db: Box<dyn MCDatabase>,
         pub creds: Config,
         pub captcha: SystemGroup,
    -    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
    -    pub settings: Settings,
    -    pub stats: Box<dyn Stats>,
    +    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
    +    pub settings: Settings,
    +    pub stats: Box<dyn Stats>,
         pub survey_secrets: SecretsStore,
     }
    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

    -
    §settings: Settings

    app settings

    -
    §stats: Box<dyn Stats>

    stats recorder

    +
    §mailer: Option<AsyncSmtpTransport<Tokio1Executor>>

    email client

    +
    §settings: Settings

    app settings

    +
    §stats: Box<dyn Stats>

    stats recorder

    §survey_secrets: SecretsStore

    survey secret store

    -

    Implementations§

    source§

    impl Data

    source

    pub fn get_creds() -> Config

    source

    pub async fn new(s: &Settings, survey_secrets: SecretsStore) -> Arc<Self>

    create new instance of app data

    -
    source

    fn get_mailer(s: &Settings) -> Option<AsyncSmtpTransport<Tokio1Executor>>

    source

    async fn upload_survey_job(&self) -> Result<(), ServiceError>

    source

    async fn register_survey(&self) -> Result<(), ServiceError>

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Data

    §

    impl Send for Data

    §

    impl Sync for Data

    §

    impl Unpin for Data

    §

    impl !UnwindSafe for Data

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Implementations§

    Source§

    impl Data

    Source

    pub fn get_creds() -> Config

    Source

    pub async fn new(s: &Settings, survey_secrets: SecretsStore) -> Arc<Self>

    create new instance of app data

    +
    Source

    fn get_mailer(s: &Settings) -> Option<AsyncSmtpTransport<Tokio1Executor>>

    Source

    async fn upload_survey_job(&self) -> Result<(), ServiceError>

    Source

    async fn register_survey(&self) -> Result<(), ServiceError>

    Auto Trait Implementations§

    §

    impl Freeze for Data

    §

    impl !RefUnwindSafe for Data

    §

    impl Send for Data

    §

    impl Sync for Data

    §

    impl Unpin for Data

    §

    impl !UnwindSafe for Data

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/data/type.Mailer.html b/mcaptcha/data/type.Mailer.html index 867c2057..5111e3ce 100644 --- a/mcaptcha/data/type.Mailer.html +++ b/mcaptcha/data/type.Mailer.html @@ -1,5 +1,2 @@ -Mailer in mcaptcha::data - Rust -

    Type Alias mcaptcha::data::Mailer

    source ·
    pub type Mailer = AsyncSmtpTransport<Tokio1Executor>;
    Expand description

    Mailer data type AsyncSmtpTransport

    -

    Aliased Type§

    struct Mailer {
    -    inner: Arc<Pool<Tokio1Executor>>,
    -}

    Fields§

    §inner: Arc<Pool<Tokio1Executor>>
    \ No newline at end of file +Mailer in mcaptcha::data - Rust

    Type Alias Mailer

    Source
    pub type Mailer = AsyncSmtpTransport<Tokio1Executor>;
    Expand description

    Mailer data type AsyncSmtpTransport

    +

    Aliased Type§

    pub struct Mailer { /* private fields */ }
    \ No newline at end of file diff --git a/mcaptcha/date/constant.DAY.html b/mcaptcha/date/constant.DAY.html index d8a9aa61..878b662a 100644 --- a/mcaptcha/date/constant.DAY.html +++ b/mcaptcha/date/constant.DAY.html @@ -1,2 +1 @@ -DAY in mcaptcha::date - Rust -

    Constant mcaptcha::date::DAY

    source ·
    pub const DAY: i64 = _; // 86_400i64
    \ No newline at end of file +DAY in mcaptcha::date - Rust

    Constant DAY

    Source
    pub const DAY: i64 = _; // 86_400i64
    \ No newline at end of file diff --git a/mcaptcha/date/constant.HOUR.html b/mcaptcha/date/constant.HOUR.html index 738e0411..a6a428f2 100644 --- a/mcaptcha/date/constant.HOUR.html +++ b/mcaptcha/date/constant.HOUR.html @@ -1,2 +1 @@ -HOUR in mcaptcha::date - Rust -

    Constant mcaptcha::date::HOUR

    source ·
    pub const HOUR: i64 = _; // 3_600i64
    \ No newline at end of file +HOUR in mcaptcha::date - Rust

    Constant HOUR

    Source
    pub const HOUR: i64 = _; // 3_600i64
    \ No newline at end of file diff --git a/mcaptcha/date/constant.MINUTE.html b/mcaptcha/date/constant.MINUTE.html index 8c407294..bea3f930 100644 --- a/mcaptcha/date/constant.MINUTE.html +++ b/mcaptcha/date/constant.MINUTE.html @@ -1,2 +1 @@ -MINUTE in mcaptcha::date - Rust -

    Constant mcaptcha::date::MINUTE

    source ·
    pub const MINUTE: i64 = 60;
    \ No newline at end of file +MINUTE in mcaptcha::date - Rust

    Constant 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 75304d3f..a34b15af 100644 --- a/mcaptcha/date/constant.WEEK.html +++ b/mcaptcha/date/constant.WEEK.html @@ -1,2 +1 @@ -WEEK in mcaptcha::date - Rust -

    Constant mcaptcha::date::WEEK

    source ·
    pub const WEEK: i64 = _; // 604_800i64
    \ No newline at end of file +WEEK in mcaptcha::date - Rust

    Constant WEEK

    Source
    pub const WEEK: i64 = _; // 604_800i64
    \ No newline at end of file diff --git a/mcaptcha/date/index.html b/mcaptcha/date/index.html index 64cdea04..2ca13083 100644 --- a/mcaptcha/date/index.html +++ b/mcaptcha/date/index.html @@ -1,2 +1 @@ -mcaptcha::date - Rust -

    Module mcaptcha::date

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::date - Rust

    Module date

    Source

    Structs§

    Date

    Constants§

    DAY
    HOUR
    MINUTE
    WEEK
    \ No newline at end of file diff --git a/mcaptcha/date/struct.Date.html b/mcaptcha/date/struct.Date.html index ff7e9c4f..41d4b97b 100644 --- a/mcaptcha/date/struct.Date.html +++ b/mcaptcha/date/struct.Date.html @@ -1,23 +1,40 @@ -Date in mcaptcha::date - Rust -

    Struct mcaptcha::date::Date

    source ·
    pub struct Date {
    +Date in mcaptcha::date - Rust

    Struct Date

    Source
    pub struct Date {
         pub time: OffsetDateTime,
    -}

    Fields§

    §time: OffsetDateTime

    Implementations§

    source§

    impl Date

    source

    pub fn format(date: &OffsetDateTime) -> String

    source

    pub fn print_date(&self) -> String

    print relative time from date

    -
    source

    pub fn date(&self) -> String

    print date

    -
    source

    pub fn new(unix: i64) -> Self

    Trait Implementations§

    source§

    impl Clone for Date

    source§

    fn clone(&self) -> Date

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Date

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Date

    §

    impl Send for Date

    §

    impl Sync for Date

    §

    impl Unpin for Date

    §

    impl UnwindSafe for Date

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §time: OffsetDateTime

    Implementations§

    Source§

    impl Date

    Source

    pub fn format(date: &OffsetDateTime) -> String

    Source

    pub fn print_date(&self) -> String

    print relative time from date

    +
    Source

    pub fn date(&self) -> String

    print date

    +
    Source

    pub fn new(unix: i64) -> Self

    Trait Implementations§

    Source§

    impl Clone for Date

    Source§

    fn clone(&self) -> Date

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Date

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Date

    §

    impl RefUnwindSafe for Date

    §

    impl Send for Date

    §

    impl Sync for Date

    §

    impl Unpin for Date

    §

    impl UnwindSafe for Date

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/db/index.html b/mcaptcha/db/index.html index fdb4272f..e03798fc 100644 --- a/mcaptcha/db/index.html +++ b/mcaptcha/db/index.html @@ -1,2 +1 @@ -mcaptcha::db - Rust -

    Module mcaptcha::db

    source ·

    Modules§

    Type Aliases§

    \ No newline at end of file +mcaptcha::db - Rust

    Module db

    Source

    Modules§

    maria
    pg

    Type Aliases§

    BoxDB
    \ No newline at end of file diff --git a/mcaptcha/db/maria/fn.get_data.html b/mcaptcha/db/maria/fn.get_data.html index 45f05d3f..09e877f0 100644 --- a/mcaptcha/db/maria/fn.get_data.html +++ b/mcaptcha/db/maria/fn.get_data.html @@ -1,2 +1 @@ -get_data in mcaptcha::db::maria - Rust -

    Function mcaptcha::db::maria::get_data

    source ·
    pub async fn get_data(settings: Option<Settings>) -> Box<dyn MCDatabase>
    \ No newline at end of file +get_data in mcaptcha::db::maria - Rust

    Function get_data

    Source
    pub async fn get_data(settings: Option<Settings>) -> Box<dyn MCDatabase>
    \ No newline at end of file diff --git a/mcaptcha/db/maria/index.html b/mcaptcha/db/maria/index.html index dedd6d93..976dde38 100644 --- a/mcaptcha/db/maria/index.html +++ b/mcaptcha/db/maria/index.html @@ -1,2 +1 @@ -mcaptcha::db::maria - Rust -

    Module mcaptcha::db::maria

    source ·

    Functions§

    \ No newline at end of file +mcaptcha::db::maria - Rust

    Module maria

    Source

    Functions§

    get_data
    \ No newline at end of file diff --git a/mcaptcha/db/pg/fn.get_data.html b/mcaptcha/db/pg/fn.get_data.html index 12023403..fc3586be 100644 --- a/mcaptcha/db/pg/fn.get_data.html +++ b/mcaptcha/db/pg/fn.get_data.html @@ -1,2 +1 @@ -get_data in mcaptcha::db::pg - Rust -

    Function mcaptcha::db::pg::get_data

    source ·
    pub async fn get_data(settings: Option<Settings>) -> Box<dyn MCDatabase>
    \ No newline at end of file +get_data in mcaptcha::db::pg - Rust

    Function get_data

    Source
    pub async fn get_data(settings: Option<Settings>) -> Box<dyn MCDatabase>
    \ No newline at end of file diff --git a/mcaptcha/db/pg/index.html b/mcaptcha/db/pg/index.html index 21ed6a01..42db2479 100644 --- a/mcaptcha/db/pg/index.html +++ b/mcaptcha/db/pg/index.html @@ -1,2 +1 @@ -mcaptcha::db::pg - Rust -

    Module mcaptcha::db::pg

    source ·

    Functions§

    \ No newline at end of file +mcaptcha::db::pg - Rust

    Module pg

    Source

    Functions§

    get_data
    \ No newline at end of file diff --git a/mcaptcha/db/type.BoxDB.html b/mcaptcha/db/type.BoxDB.html index 7aef61c3..f14bb4b1 100644 --- a/mcaptcha/db/type.BoxDB.html +++ b/mcaptcha/db/type.BoxDB.html @@ -1,2 +1 @@ -BoxDB in mcaptcha::db - Rust -

    Type Alias mcaptcha::db::BoxDB

    source ·
    pub type BoxDB = Box<dyn MCDatabase>;

    Aliased Type§

    struct BoxDB(Unique<dyn MCDatabase>, Global);

    Fields§

    §0: Unique<dyn MCDatabase>§1: Global
    \ No newline at end of file +BoxDB in mcaptcha::db - Rust

    Type Alias BoxDB

    Source
    pub type BoxDB = Box<dyn MCDatabase>;

    Aliased Type§

    pub struct BoxDB(/* private fields */);
    \ No newline at end of file diff --git a/mcaptcha/demo/constant.DEMO_PASSWORD.html b/mcaptcha/demo/constant.DEMO_PASSWORD.html index af6bdaf9..428f1772 100644 --- a/mcaptcha/demo/constant.DEMO_PASSWORD.html +++ b/mcaptcha/demo/constant.DEMO_PASSWORD.html @@ -1,3 +1,2 @@ -DEMO_PASSWORD in mcaptcha::demo - Rust -

    Constant mcaptcha::demo::DEMO_PASSWORD

    source ·
    pub const DEMO_PASSWORD: &str = "password";
    Expand description

    Demo password

    +DEMO_PASSWORD in mcaptcha::demo - Rust

    Constant 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 a16625f5..6eab896e 100644 --- a/mcaptcha/demo/constant.DEMO_USER.html +++ b/mcaptcha/demo/constant.DEMO_USER.html @@ -1,3 +1,2 @@ -DEMO_USER in mcaptcha::demo - Rust -

    Constant mcaptcha::demo::DEMO_USER

    source ·
    pub const DEMO_USER: &str = "aaronsw";
    Expand description

    Demo username

    +DEMO_USER in mcaptcha::demo - Rust

    Constant 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 b042f625..16722016 100644 --- a/mcaptcha/demo/index.html +++ b/mcaptcha/demo/index.html @@ -1,2 +1 @@ -mcaptcha::demo - Rust -

    Module mcaptcha::demo

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::demo - Rust

    Module demo

    Source

    Structs§

    DemoUser

    Constants§

    DEMO_PASSWORD
    Demo password
    DEMO_USER
    Demo username
    \ No newline at end of file diff --git a/mcaptcha/demo/struct.DemoUser.html b/mcaptcha/demo/struct.DemoUser.html index ac94dec1..fd5246c4 100644 --- a/mcaptcha/demo/struct.DemoUser.html +++ b/mcaptcha/demo/struct.DemoUser.html @@ -1,28 +1,42 @@ -DemoUser in mcaptcha::demo - Rust -

    Struct mcaptcha::demo::DemoUser

    source ·
    pub struct DemoUser {
    -    tx: Sender<()>,
    -}

    Fields§

    §tx: Sender<()>

    Implementations§

    source§

    impl DemoUser

    source

    pub async fn spawn( +DemoUser in mcaptcha::demo - Rust

    Struct DemoUser

    Source
    pub struct DemoUser {
    +    tx: Sender<()>,
    +}

    Fields§

    §tx: Sender<()>

    Implementations§

    Source§

    impl DemoUser

    Source

    pub async fn spawn( data: AppData, - duration: u32 -) -> Result<(Self, JoinHandle<()>), ServiceError>

    source

    pub fn abort(self)

    source

    async fn register_demo_user(data: &AppData) -> Result<(), ServiceError>

    register demo user runner

    -
    source

    async fn delete_demo_user(data: &AppData) -> Result<(), ServiceError>

    source

    pub async fn run( + duration: u32, +) -> Result<(Self, JoinHandle<()>), ServiceError>

    Source

    pub fn abort(self)

    Source

    async fn register_demo_user(data: &AppData) -> Result<(), ServiceError>

    register demo user runner

    +
    Source

    async fn delete_demo_user(data: &AppData) -> Result<(), ServiceError>

    Source

    pub async fn run( data: AppData, - duration: u32, - rx: Receiver<()> -) -> Result<JoinHandle<()>, ServiceError>

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + duration: u32, + rx: Receiver<()>, +) -> Result<JoinHandle<()>, ServiceError>

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/docs/constant.DOCS.html b/mcaptcha/docs/constant.DOCS.html index 2985b332..733cf1e3 100644 --- a/mcaptcha/docs/constant.DOCS.html +++ b/mcaptcha/docs/constant.DOCS.html @@ -1,2 +1 @@ -DOCS in mcaptcha::docs - Rust -

    Constant mcaptcha::docs::DOCS

    source ·
    pub const DOCS: Docs;
    \ No newline at end of file +DOCS in mcaptcha::docs - Rust

    Constant 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 d144756e..dd330f4a 100644 --- a/mcaptcha/docs/constant.OPEN_API_SPEC.html +++ b/mcaptcha/docs/constant.OPEN_API_SPEC.html @@ -1,2 +1 @@ -OPEN_API_SPEC in mcaptcha::docs - Rust -

    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 +OPEN_API_SPEC in mcaptcha::docs - Rust

    Constant 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 ff6efc00..126ce2d7 100644 --- a/mcaptcha/docs/fn.handle_embedded_file.html +++ b/mcaptcha/docs/fn.handle_embedded_file.html @@ -1,2 +1 @@ -handle_embedded_file in mcaptcha::docs - Rust -
    pub fn handle_embedded_file(path: &str) -> HttpResponse
    \ No newline at end of file +handle_embedded_file in mcaptcha::docs - Rust

    Function 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 9e1a2890..71c247c7 100644 --- a/mcaptcha/docs/fn.services.html +++ b/mcaptcha/docs/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::docs - Rust -

    Function mcaptcha::docs::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::docs - Rust

    Function 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 a130898c..65116033 100644 --- a/mcaptcha/docs/index.html +++ b/mcaptcha/docs/index.html @@ -1,2 +1 @@ -mcaptcha::docs - Rust -

    Module mcaptcha::docs

    source ·

    Modules§

    Structs§

    Constants§

    Functions§

    \ No newline at end of file +mcaptcha::docs - Rust

    Module docs

    Source

    Modules§

    routes

    Structs§

    Asset 🔒
    dist
    index
    spec

    Constants§

    DOCS
    OPEN_API_SPEC 🔒

    Functions§

    handle_embedded_file
    services
    \ No newline at end of file diff --git a/mcaptcha/docs/routes/index.html b/mcaptcha/docs/routes/index.html index 5d3c5787..712ecfc7 100644 --- a/mcaptcha/docs/routes/index.html +++ b/mcaptcha/docs/routes/index.html @@ -1,2 +1 @@ -mcaptcha::docs::routes - Rust -

    Module mcaptcha::docs::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::docs::routes - Rust

    Module routes

    Source

    Structs§

    Docs
    \ No newline at end of file diff --git a/mcaptcha/docs/routes/struct.Docs.html b/mcaptcha/docs/routes/struct.Docs.html index e11a29ac..c7a2cf9a 100644 --- a/mcaptcha/docs/routes/struct.Docs.html +++ b/mcaptcha/docs/routes/struct.Docs.html @@ -1,22 +1,36 @@ -Docs in mcaptcha::docs::routes - Rust -

    Struct mcaptcha::docs::routes::Docs

    source ·
    pub struct Docs {
    -    pub home: &'static str,
    -    pub spec: &'static str,
    -    pub assets: &'static str,
    -}

    Fields§

    §home: &'static str§spec: &'static str§assets: &'static str

    Implementations§

    source§

    impl Docs

    source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Docs

    §

    impl Send for Docs

    §

    impl Sync for Docs

    §

    impl Unpin for Docs

    §

    impl UnwindSafe for Docs

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Docs in mcaptcha::docs::routes - Rust

    Struct Docs

    Source
    pub struct Docs {
    +    pub home: &'static str,
    +    pub spec: &'static str,
    +    pub assets: &'static str,
    +}

    Fields§

    §home: &'static str§spec: &'static str§assets: &'static str

    Implementations§

    Source§

    impl Docs

    Source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl Freeze for Docs

    §

    impl RefUnwindSafe for Docs

    §

    impl Send for Docs

    §

    impl Sync for Docs

    §

    impl Unpin for Docs

    §

    impl UnwindSafe for Docs

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/docs/struct.Asset.html b/mcaptcha/docs/struct.Asset.html index d920ff19..b159fd2b 100644 --- a/mcaptcha/docs/struct.Asset.html +++ b/mcaptcha/docs/struct.Asset.html @@ -1,20 +1,34 @@ -Asset in mcaptcha::docs - Rust -

    Struct mcaptcha::docs::Asset

    source ·
    struct Asset;

    Implementations§

    source§

    impl Asset

    source

    pub fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata.

    -
    source

    pub fn iter() -> impl Iterator<Item = Cow<'static, str>>

    Iterates over the file paths in the folder.

    -

    Trait Implementations§

    source§

    impl RustEmbed for Asset

    source§

    fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata. Read more
    source§

    fn iter() -> Filenames

    Iterates over the file paths in the folder. Read more

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Asset

    §

    impl Send for Asset

    §

    impl Sync for Asset

    §

    impl Unpin for Asset

    §

    impl UnwindSafe for Asset

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Asset in mcaptcha::docs - Rust

    Struct Asset

    Source
    struct Asset;

    Implementations§

    Source§

    impl Asset

    Source

    fn matcher() -> PathMatcher

    Source

    pub fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata.

    +
    Source

    pub fn iter() -> impl Iterator<Item = Cow<'static, str>>

    Iterates over the file paths in the folder.

    +

    Trait Implementations§

    Source§

    impl RustEmbed for Asset

    Source§

    fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata. Read more
    Source§

    fn iter() -> Filenames

    Iterates over the file paths in the folder. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Asset

    §

    impl RefUnwindSafe for Asset

    §

    impl Send for Asset

    §

    impl Sync for Asset

    §

    impl Unpin for Asset

    §

    impl UnwindSafe for Asset

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/docs/struct.dist.html b/mcaptcha/docs/struct.dist.html index 76ba66cf..3a34c30d 100644 --- a/mcaptcha/docs/struct.dist.html +++ b/mcaptcha/docs/struct.dist.html @@ -1,18 +1,32 @@ -dist in mcaptcha::docs - Rust -

    Struct mcaptcha::docs::dist

    source ·
    pub struct dist;

    Trait Implementations§

    source§

    impl HttpServiceFactory for dist

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for dist

    §

    impl Send for dist

    §

    impl Sync for dist

    §

    impl Unpin for dist

    §

    impl UnwindSafe for dist

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +dist in mcaptcha::docs - Rust

    Struct dist

    Source
    pub struct dist;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for dist

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for dist

    §

    impl RefUnwindSafe for dist

    §

    impl Send for dist

    §

    impl Sync for dist

    §

    impl Unpin for dist

    §

    impl UnwindSafe for dist

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/docs/struct.index.html b/mcaptcha/docs/struct.index.html index 4223c753..56926950 100644 --- a/mcaptcha/docs/struct.index.html +++ b/mcaptcha/docs/struct.index.html @@ -1,18 +1,32 @@ -index in mcaptcha::docs - Rust -

    Struct mcaptcha::docs::index

    source ·
    pub struct index;

    Trait Implementations§

    source§

    impl HttpServiceFactory for index

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for index

    §

    impl Send for index

    §

    impl Sync for index

    §

    impl Unpin for index

    §

    impl UnwindSafe for index

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +index in mcaptcha::docs - Rust

    Struct index

    Source
    pub struct index;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for index

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for index

    §

    impl RefUnwindSafe for index

    §

    impl Send for index

    §

    impl Sync for index

    §

    impl Unpin for index

    §

    impl UnwindSafe for index

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/docs/struct.spec.html b/mcaptcha/docs/struct.spec.html index 2415a088..a76f1512 100644 --- a/mcaptcha/docs/struct.spec.html +++ b/mcaptcha/docs/struct.spec.html @@ -1,18 +1,32 @@ -spec in mcaptcha::docs - Rust -

    Struct mcaptcha::docs::spec

    source ·
    pub struct spec;

    Trait Implementations§

    source§

    impl HttpServiceFactory for spec

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for spec

    §

    impl Send for spec

    §

    impl Sync for spec

    §

    impl Unpin for spec

    §

    impl UnwindSafe for spec

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +spec in mcaptcha::docs - Rust

    Struct spec

    Source
    pub struct spec;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for spec

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for spec

    §

    impl RefUnwindSafe for spec

    §

    impl Send for spec

    §

    impl Sync for spec

    §

    impl Unpin for spec

    §

    impl UnwindSafe for spec

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/easy/index.html b/mcaptcha/easy/index.html index d8969ceb..b3080f66 100644 --- a/mcaptcha/easy/index.html +++ b/mcaptcha/easy/index.html @@ -1,2 +1 @@ -mcaptcha::easy - Rust -
    \ No newline at end of file +mcaptcha::easy - Rust

    Module easy

    Source

    Structs§

    UpdateEasyCaptcha
    \ No newline at end of file diff --git a/mcaptcha/easy/struct.UpdateEasyCaptcha.html b/mcaptcha/easy/struct.UpdateEasyCaptcha.html index 1fadb968..224ec4b5 100644 --- a/mcaptcha/easy/struct.UpdateEasyCaptcha.html +++ b/mcaptcha/easy/struct.UpdateEasyCaptcha.html @@ -1,31 +1,45 @@ -UpdateEasyCaptcha in mcaptcha::easy - Rust -
    pub struct UpdateEasyCaptcha {
    -    tx: Sender<()>,
    -}

    Fields§

    §tx: Sender<()>

    Implementations§

    source§

    impl UpdateEasyCaptcha

    source

    pub async fn spawn( +UpdateEasyCaptcha in mcaptcha::easy - Rust

    Struct UpdateEasyCaptcha

    Source
    pub struct UpdateEasyCaptcha {
    +    tx: Sender<()>,
    +}

    Fields§

    §tx: Sender<()>

    Implementations§

    Source§

    impl UpdateEasyCaptcha

    Source

    pub async fn spawn( data: AppData, - duration: u32 -) -> Result<(Self, JoinHandle<()>), ServiceError>

    source

    pub fn abort(self)

    source

    async fn update_captcha_configurations( + duration: u32, +) -> Result<(Self, JoinHandle<()>), ServiceError>

    Source

    pub fn abort(self)

    Source

    async fn update_captcha_configurations( data: &AppData, - rx: &mut Receiver<()> -) -> Result<(), ServiceError>

    update configurations

    -
    source

    fn can_run(rx: &mut Receiver<()>) -> bool

    source

    pub async fn run( + rx: &mut Receiver<()>, +) -> Result<(), ServiceError>

    update configurations

    +
    Source

    fn can_run(rx: &mut Receiver<()>) -> bool

    Source

    pub async fn run( data: AppData, - duration: u32, - rx: Receiver<()> -) -> Result<JoinHandle<()>, ServiceError>

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + duration: u32, + rx: Receiver<()>, +) -> Result<JoinHandle<()>, ServiceError>

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/email/index.html b/mcaptcha/email/index.html index c31d7cbb..a4f88147 100644 --- a/mcaptcha/email/index.html +++ b/mcaptcha/email/index.html @@ -1,2 +1 @@ -mcaptcha::email - Rust -

    Module mcaptcha::email

    source ·

    Modules§

    • Email operations: verification, notification, etc
    \ No newline at end of file +mcaptcha::email - Rust

    Module email

    Source

    Modules§

    verification
    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 54d6550c..32e755dd 100644 --- a/mcaptcha/email/verification/constant.PAGE.html +++ b/mcaptcha/email/verification/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::email::verification - Rust -

    Constant mcaptcha::email::verification::PAGE

    source ·
    const PAGE: &str = "Login";
    \ No newline at end of file +PAGE in mcaptcha::email::verification - Rust

    Constant 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 17fc73eb..b663403d 100644 --- a/mcaptcha/email/verification/fn.verification.html +++ b/mcaptcha/email/verification/fn.verification.html @@ -1,6 +1,5 @@ -verification in mcaptcha::email::verification - Rust -
    async fn verification(
    -    data: &Data,
    -    to: &str,
    -    verification_link: &str
    -) -> Result<(), ServiceError>
    \ No newline at end of file +verification in mcaptcha::email::verification - Rust

    Function 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 71ce208e..851c8f3e 100644 --- a/mcaptcha/email/verification/index.html +++ b/mcaptcha/email/verification/index.html @@ -1,3 +1,2 @@ -mcaptcha::email::verification - Rust -
    Expand description

    Email operations: verification, notification, etc

    -

    Structs§

    Constants§

    Functions§

    \ No newline at end of file +mcaptcha::email::verification - Rust

    Module verification

    Source
    Expand description

    Email operations: verification, notification, etc

    +

    Structs§

    IndexPage 🔒

    Constants§

    PAGE 🔒

    Functions§

    verification 🔒
    \ No newline at end of file diff --git a/mcaptcha/email/verification/struct.IndexPage.html b/mcaptcha/email/verification/struct.IndexPage.html index f415dec9..e97e2879 100644 --- a/mcaptcha/email/verification/struct.IndexPage.html +++ b/mcaptcha/email/verification/struct.IndexPage.html @@ -1,21 +1,38 @@ -IndexPage in mcaptcha::email::verification - Rust -
    struct IndexPage<'a> {
    -    verification_link: &'a str,
    -}

    Fields§

    §verification_link: &'a str

    Implementations§

    source§

    impl<'a> IndexPage<'a>

    source

    fn new(verification_link: &'a str) -> Self

    Trait Implementations§

    source§

    impl<'a> Clone for IndexPage<'a>

    source§

    fn clone(&self) -> IndexPage<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> TemplateOnce for IndexPage<'a>

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl<'a> Sealed for IndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for IndexPage<'a>

    §

    impl<'a> Send for IndexPage<'a>

    §

    impl<'a> Sync for IndexPage<'a>

    §

    impl<'a> Unpin for IndexPage<'a>

    §

    impl<'a> UnwindSafe for IndexPage<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::email::verification - Rust

    Struct IndexPage

    Source
    struct IndexPage<'a> {
    +    verification_link: &'a str,
    +}

    Fields§

    §verification_link: &'a str

    Implementations§

    Source§

    impl<'a> IndexPage<'a>

    Source

    fn new(verification_link: &'a str) -> Self

    Trait Implementations§

    Source§

    impl<'a> Clone for IndexPage<'a>

    Source§

    fn clone(&self) -> IndexPage<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> TemplateOnce for IndexPage<'a>

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl<'a> Sealed for IndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for IndexPage<'a>

    §

    impl<'a> RefUnwindSafe for IndexPage<'a>

    §

    impl<'a> Send for IndexPage<'a>

    §

    impl<'a> Sync for IndexPage<'a>

    §

    impl<'a> Unpin for IndexPage<'a>

    §

    impl<'a> UnwindSafe for IndexPage<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/errors/enum.PageError.html b/mcaptcha/errors/enum.PageError.html index 034bbbb3..b830c15e 100644 --- a/mcaptcha/errors/enum.PageError.html +++ b/mcaptcha/errors/enum.PageError.html @@ -1,24 +1,40 @@ -PageError in mcaptcha::errors - Rust -
    pub enum PageError {
    +PageError in mcaptcha::errors - Rust

    Enum PageError

    Source
    pub enum PageError {
         InternalServerError,
         ServiceError(ServiceError),
    -}

    Variants§

    §

    InternalServerError

    §

    ServiceError(ServiceError)

    Trait Implementations§

    source§

    impl Debug for PageError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for PageError

    source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for PageError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<DBError> for PageError

    source§

    fn from(e: DBError) -> Self

    Converts to this type from the input type.
    source§

    impl From<ServiceError> for PageError

    source§

    fn from(e: ServiceError) -> Self

    Converts to this type from the input type.
    source§

    impl PartialEq for PageError

    source§

    fn eq(&self, other: &PageError) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl ResponseError for PageError

    source§

    fn error_response(&self) -> HttpResponse

    Creates full response for error. Read more
    source§

    fn status_code(&self) -> StatusCode

    Returns appropriate status code for error. Read more
    source§

    impl StructuralPartialEq for PageError

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Variants§

    §

    InternalServerError

    §

    ServiceError(ServiceError)

    Trait Implementations§

    Source§

    impl Debug for PageError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for PageError

    Source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for PageError

    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl From<DBError> for PageError

    Source§

    fn from(e: DBError) -> Self

    Converts to this type from the input type.
    Source§

    impl From<ServiceError> for PageError

    Source§

    fn from(e: ServiceError) -> Self

    Converts to this type from the input type.
    Source§

    impl PartialEq for PageError

    Source§

    fn eq(&self, other: &PageError) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl ResponseError for PageError

    Source§

    fn error_response(&self) -> HttpResponse

    Creates full response for error. Read more
    Source§

    fn status_code(&self) -> StatusCode

    Returns appropriate status code for error. Read more
    Source§

    impl StructuralPartialEq for PageError

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/errors/enum.ServiceError.html b/mcaptcha/errors/enum.ServiceError.html index 31372548..1c14f60b 100644 --- a/mcaptcha/errors/enum.ServiceError.html +++ b/mcaptcha/errors/enum.ServiceError.html @@ -1,5 +1,4 @@ -ServiceError in mcaptcha::errors - Rust -
    pub enum ServiceError {
    +ServiceError in mcaptcha::errors - Rust

    Enum ServiceError

    Source
    pub enum ServiceError {
     
    Show 21 variants InternalServerError, ClosedForRegistration, NotAnEmail, @@ -33,23 +32,40 @@ profile

    §

    TokenNotFound

    token not found

    §

    CaptchaError(CaptchaError)

    §

    DBError(DBErrorWrapper)

    §

    CaptchaNotFound

    captcha not found

    §

    TrafficPatternNotFound

    Traffic pattern not found

    -

    Trait Implementations§

    source§

    impl Debug for ServiceError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for ServiceError

    source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for ServiceError

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<CaptchaError> for ServiceError

    source§

    fn from(e: CaptchaError) -> ServiceError

    Converts to this type from the input type.
    source§

    impl From<CredsError> for ServiceError

    source§

    fn from(e: CredsError) -> ServiceError

    Converts to this type from the input type.
    source§

    impl From<DBError> for ServiceError

    source§

    fn from(e: DBError) -> ServiceError

    Converts to this type from the input type.
    source§

    impl From<Error> for ServiceError

    source§

    fn from(e: SmtpError) -> Self

    Converts to this type from the input type.
    source§

    impl From<MailboxError> for ServiceError

    source§

    fn from(e: MailboxError) -> Self

    Converts to this type from the input type.
    source§

    impl From<ParseError> for ServiceError

    source§

    fn from(_: ParseError) -> ServiceError

    Converts to this type from the input type.
    source§

    impl From<RecvError> for ServiceError

    source§

    fn from(e: RecvError) -> Self

    Converts to this type from the input type.
    source§

    impl From<ServiceError> for PageError

    source§

    fn from(e: ServiceError) -> Self

    Converts to this type from the input type.
    source§

    impl From<ValidationErrors> for ServiceError

    source§

    fn from(_: ValidationErrors) -> ServiceError

    Converts to this type from the input type.
    source§

    impl PartialEq for ServiceError

    source§

    fn eq(&self, other: &ServiceError) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl ResponseError for ServiceError

    source§

    fn error_response(&self) -> HttpResponse

    Creates full response for error. Read more
    source§

    fn status_code(&self) -> StatusCode

    Returns appropriate status code for error. Read more
    source§

    impl StructuralPartialEq for ServiceError

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Debug for ServiceError

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for ServiceError

    Source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for ServiceError

    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl From<CaptchaError> for ServiceError

    Source§

    fn from(e: CaptchaError) -> ServiceError

    Converts to this type from the input type.
    Source§

    impl From<CredsError> for ServiceError

    Source§

    fn from(e: CredsError) -> ServiceError

    Converts to this type from the input type.
    Source§

    impl From<DBError> for ServiceError

    Source§

    fn from(e: DBError) -> ServiceError

    Converts to this type from the input type.
    Source§

    impl From<Error> for ServiceError

    Source§

    fn from(e: SmtpError) -> Self

    Converts to this type from the input type.
    Source§

    impl From<MailboxError> for ServiceError

    Source§

    fn from(e: MailboxError) -> Self

    Converts to this type from the input type.
    Source§

    impl From<ParseError> for ServiceError

    Source§

    fn from(_: ParseError) -> ServiceError

    Converts to this type from the input type.
    Source§

    impl From<RecvError> for ServiceError

    Source§

    fn from(e: RecvError) -> Self

    Converts to this type from the input type.
    Source§

    impl From<ServiceError> for PageError

    Source§

    fn from(e: ServiceError) -> Self

    Converts to this type from the input type.
    Source§

    impl From<ValidationErrors> for ServiceError

    Source§

    fn from(_: ValidationErrors) -> ServiceError

    Converts to this type from the input type.
    Source§

    impl PartialEq for ServiceError

    Source§

    fn eq(&self, other: &ServiceError) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl ResponseError for ServiceError

    Source§

    fn error_response(&self) -> HttpResponse

    Creates full response for error. Read more
    Source§

    fn status_code(&self) -> StatusCode

    Returns appropriate status code for error. Read more
    Source§

    impl StructuralPartialEq for ServiceError

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/errors/index.html b/mcaptcha/errors/index.html index 975af1ca..0d671af3 100644 --- a/mcaptcha/errors/index.html +++ b/mcaptcha/errors/index.html @@ -1,2 +1 @@ -mcaptcha::errors - Rust -
    \ No newline at end of file +mcaptcha::errors - Rust
    \ No newline at end of file diff --git a/mcaptcha/errors/struct.DBErrorWrapper.html b/mcaptcha/errors/struct.DBErrorWrapper.html index cbb926c9..08a923b5 100644 --- a/mcaptcha/errors/struct.DBErrorWrapper.html +++ b/mcaptcha/errors/struct.DBErrorWrapper.html @@ -1,21 +1,37 @@ -DBErrorWrapper in mcaptcha::errors - Rust -
    pub struct DBErrorWrapper(DBError);

    Tuple Fields§

    §0: DBError

    Trait Implementations§

    source§

    impl Debug for DBErrorWrapper

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for DBErrorWrapper

    source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for DBErrorWrapper

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl PartialEq for DBErrorWrapper

    source§

    fn eq(&self, other: &Self) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +DBErrorWrapper in mcaptcha::errors - Rust

    Struct DBErrorWrapper

    Source
    pub struct DBErrorWrapper(DBError);

    Tuple Fields§

    §0: DBError

    Trait Implementations§

    Source§

    impl Debug for DBErrorWrapper

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for DBErrorWrapper

    Source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for DBErrorWrapper

    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl PartialEq for DBErrorWrapper

    Source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/errors/struct.ErrorToResponse.html b/mcaptcha/errors/struct.ErrorToResponse.html index 5f1224a1..e720645c 100644 --- a/mcaptcha/errors/struct.ErrorToResponse.html +++ b/mcaptcha/errors/struct.ErrorToResponse.html @@ -1,23 +1,41 @@ -ErrorToResponse in mcaptcha::errors - Rust -
    pub struct ErrorToResponse {
    -    pub error: String,
    -}

    Fields§

    §error: String

    Trait Implementations§

    source§

    impl<'de> Deserialize<'de> for ErrorToResponse

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for ErrorToResponse

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +ErrorToResponse in mcaptcha::errors - Rust

    Struct ErrorToResponse

    Source
    pub struct ErrorToResponse {
    +    pub error: String,
    +}

    Fields§

    §error: String

    Trait Implementations§

    Source§

    impl<'de> Deserialize<'de> for ErrorToResponse

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Serialize for ErrorToResponse

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/errors/struct.SmtpErrorWrapper.html b/mcaptcha/errors/struct.SmtpErrorWrapper.html index 68c3fb11..c8d11bd8 100644 --- a/mcaptcha/errors/struct.SmtpErrorWrapper.html +++ b/mcaptcha/errors/struct.SmtpErrorWrapper.html @@ -1,21 +1,37 @@ -SmtpErrorWrapper in mcaptcha::errors - Rust -
    pub struct SmtpErrorWrapper(Error);

    Tuple Fields§

    §0: Error

    Trait Implementations§

    source§

    impl Debug for SmtpErrorWrapper

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for SmtpErrorWrapper

    source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for SmtpErrorWrapper

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl PartialEq for SmtpErrorWrapper

    source§

    fn eq(&self, other: &Self) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +SmtpErrorWrapper in mcaptcha::errors - Rust

    Struct SmtpErrorWrapper

    Source
    pub struct SmtpErrorWrapper(Error);

    Tuple Fields§

    §0: Error

    Trait Implementations§

    Source§

    impl Debug for SmtpErrorWrapper

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Display for SmtpErrorWrapper

    Source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Error for SmtpErrorWrapper

    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    Source§

    impl PartialEq for SmtpErrorWrapper

    Source§

    fn eq(&self, other: &Self) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/errors/type.PageResult.html b/mcaptcha/errors/type.PageResult.html index defd2658..b53fb105 100644 --- a/mcaptcha/errors/type.PageResult.html +++ b/mcaptcha/errors/type.PageResult.html @@ -1,5 +1,4 @@ -PageResult in mcaptcha::errors - Rust -

    Type Alias mcaptcha::errors::PageResult

    source ·
    pub type PageResult<V> = Result<V, PageError>;

    Aliased Type§

    enum PageResult<V> {
    +PageResult in mcaptcha::errors - Rust

    Type Alias PageResult

    Source
    pub type PageResult<V> = Result<V, PageError>;

    Aliased Type§

    pub enum PageResult<V> {
         Ok(V),
         Err(PageError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    diff --git a/mcaptcha/errors/type.ServiceResult.html b/mcaptcha/errors/type.ServiceResult.html index 20119fdc..099cfe43 100644 --- a/mcaptcha/errors/type.ServiceResult.html +++ b/mcaptcha/errors/type.ServiceResult.html @@ -1,5 +1,4 @@ -ServiceResult in mcaptcha::errors - Rust -

    Type Alias mcaptcha::errors::ServiceResult

    source ·
    pub type ServiceResult<V> = Result<V, ServiceError>;

    Aliased Type§

    enum ServiceResult<V> {
    +ServiceResult in mcaptcha::errors - Rust

    Type Alias ServiceResult

    Source
    pub type ServiceResult<V> = Result<V, ServiceError>;

    Aliased Type§

    pub enum ServiceResult<V> {
         Ok(V),
         Err(ServiceError),
     }

    Variants§

    §1.0.0

    Ok(V)

    Contains the success value

    diff --git a/mcaptcha/fn.get_identity_service.html b/mcaptcha/fn.get_identity_service.html index cb0f6ed5..4708ab52 100644 --- a/mcaptcha/fn.get_identity_service.html +++ b/mcaptcha/fn.get_identity_service.html @@ -1,4 +1,3 @@ -get_identity_service in mcaptcha - Rust -
    pub fn get_identity_service(
    -    settings: &Settings
    +get_identity_service in mcaptcha - Rust

    Function 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 05ba4915..58ad57d7 100644 --- a/mcaptcha/fn.get_json_err.html +++ b/mcaptcha/fn.get_json_err.html @@ -1,2 +1 @@ -get_json_err in mcaptcha - Rust -

    Function mcaptcha::get_json_err

    source ·
    pub fn get_json_err() -> JsonConfig
    \ No newline at end of file +get_json_err in mcaptcha - Rust

    Function 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 11f4d240..50431d77 100644 --- a/mcaptcha/fn.main.html +++ b/mcaptcha/fn.main.html @@ -1,2 +1 @@ -main in mcaptcha - Rust -

    Function mcaptcha::main

    source ·
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file +main in mcaptcha - Rust

    Function main

    Source
    pub(crate) fn main() -> Result<()>
    \ No newline at end of file diff --git a/mcaptcha/index.html b/mcaptcha/index.html index 575f075d..787cb5a8 100644 --- a/mcaptcha/index.html +++ b/mcaptcha/index.html @@ -1,3 +1 @@ -mcaptcha - Rust -
    \ No newline at end of file +mcaptcha - Rust

    Crate mcaptcha

    Source

    Modules§

    api 🔒
    data 🔒
    App data: redis cache, database connections, etc.
    date 🔒
    db 🔒
    demo 🔒
    docs 🔒
    easy 🔒
    email 🔒
    errors 🔒
    pages 🔒
    routes 🔒
    settings 🔒
    static_assets 🔒
    stats 🔒
    survey 🔒
    widget 🔒
    User facing CAPTCHA widget

    Structs§

    BAR_CHART
    CREDIT_CARD
    CSS
    DOCS_ICON
    Data
    App data
    FILES
    GITHUB
    HELP_CIRCLE
    HOME
    JS
    KEY
    MCAPTCHA_TRANS_ICON
    MESSAGE
    MOBILE_CSS
    SETTINGS
    SETTINGS_ICON
    SOURCE_FILES_OF_INSTANCE
    points to source files matching build commit
    Settings
    VERIFICATIN_WIDGET_CSS
    VERIFICATIN_WIDGET_JS

    Constants§

    CACHE_AGE
    COMPILED_DATE
    DOCS
    GIT_COMMIT_HASH
    PAGES
    PKG_DESCRIPTION
    PKG_HOMEPAGE
    PKG_NAME
    V1_API_ROUTES
    VERSION
    WIDGET_ROUTES

    Functions§

    get_identity_service
    get_json_err
    main 🔒

    Type Aliases§

    AppData
    ArcData
    \ No newline at end of file diff --git a/mcaptcha/pages/auth/fn.services.html b/mcaptcha/pages/auth/fn.services.html index 6918ca14..be0cf777 100644 --- a/mcaptcha/pages/auth/fn.services.html +++ b/mcaptcha/pages/auth/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::pages::auth - Rust -

    Function mcaptcha::pages::auth::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::pages::auth - Rust

    Function 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 e6d149f2..fc4e7fd7 100644 --- a/mcaptcha/pages/auth/index.html +++ b/mcaptcha/pages/auth/index.html @@ -1,2 +1 @@ -mcaptcha::pages::auth - Rust -
    \ No newline at end of file +mcaptcha::pages::auth - Rust

    Module auth

    Source

    Modules§

    login
    register
    routes
    sudo

    Functions§

    services
    \ 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 196c6d75..1f26c2ab 100644 --- a/mcaptcha/pages/auth/login/constant.PAGE.html +++ b/mcaptcha/pages/auth/login/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::auth::login - Rust -

    Constant mcaptcha::pages::auth::login::PAGE

    source ·
    const PAGE: &str = "Login";
    \ No newline at end of file +PAGE in mcaptcha::pages::auth::login - Rust

    Constant 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 17a37b97..6c8d311c 100644 --- a/mcaptcha/pages/auth/login/index.html +++ b/mcaptcha/pages/auth/login/index.html @@ -1,2 +1 @@ -mcaptcha::pages::auth::login - Rust -

    Module mcaptcha::pages::auth::login

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::pages::auth::login - Rust

    Module login

    Source

    Structs§

    INDEX 🔒
    IndexPage 🔒
    login

    Constants§

    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 c92807de..4595d512 100644 --- a/mcaptcha/pages/auth/login/struct.INDEX.html +++ b/mcaptcha/pages/auth/login/struct.INDEX.html @@ -1,23 +1,22 @@ -INDEX in mcaptcha::pages::auth::login - Rust -

    Struct mcaptcha::pages::auth::login::INDEX

    source ·
    struct INDEX {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +INDEX in mcaptcha::pages::auth::login - Rust

    Struct INDEX

    Source
    struct INDEX {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for INDEX

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for INDEX

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for INDEX

    §

    impl Send for INDEX

    §

    impl Sync for INDEX

    §

    impl Unpin for INDEX

    §

    impl UnwindSafe for INDEX

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for INDEX

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for INDEX

    Auto Trait Implementations§

    §

    impl Freeze for INDEX

    §

    impl RefUnwindSafe for INDEX

    §

    impl Send for INDEX

    §

    impl Sync for INDEX

    §

    impl Unpin for INDEX

    §

    impl UnwindSafe for INDEX

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 171dcdcb..bbd44c04 100644 --- a/mcaptcha/pages/auth/login/struct.IndexPage.html +++ b/mcaptcha/pages/auth/login/struct.IndexPage.html @@ -1,19 +1,36 @@ -IndexPage in mcaptcha::pages::auth::login - Rust -
    struct IndexPage;

    Trait Implementations§

    source§

    impl Clone for IndexPage

    source§

    fn clone(&self) -> IndexPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for IndexPage

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::pages::auth::login - Rust

    Struct IndexPage

    Source
    struct IndexPage;

    Trait Implementations§

    Source§

    impl Clone for IndexPage

    Source§

    fn clone(&self) -> IndexPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for IndexPage

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 f6f13a67..12013b23 100644 --- a/mcaptcha/pages/auth/login/struct.login.html +++ b/mcaptcha/pages/auth/login/struct.login.html @@ -1,18 +1,32 @@ -login in mcaptcha::pages::auth::login - Rust -

    Struct mcaptcha::pages::auth::login::login

    source ·
    pub struct login;

    Trait Implementations§

    source§

    impl HttpServiceFactory for login

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for login

    §

    impl Send for login

    §

    impl Sync for login

    §

    impl Unpin for login

    §

    impl UnwindSafe for login

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +login in mcaptcha::pages::auth::login - Rust

    Struct login

    Source
    pub struct login;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for login

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for login

    §

    impl RefUnwindSafe for login

    §

    impl Send for login

    §

    impl Sync for login

    §

    impl Unpin for login

    §

    impl UnwindSafe for login

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 1fd7826d..448677cd 100644 --- a/mcaptcha/pages/auth/register/constant.PAGE.html +++ b/mcaptcha/pages/auth/register/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::auth::register - Rust -

    Constant mcaptcha::pages::auth::register::PAGE

    source ·
    const PAGE: &str = "Join";
    \ No newline at end of file +PAGE in mcaptcha::pages::auth::register - Rust

    Constant 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 b89c8ce3..33ca572b 100644 --- a/mcaptcha/pages/auth/register/index.html +++ b/mcaptcha/pages/auth/register/index.html @@ -1,2 +1 @@ -mcaptcha::pages::auth::register - Rust -

    Module mcaptcha::pages::auth::register

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::pages::auth::register - Rust

    Module register

    Source

    Structs§

    INDEX 🔒
    IndexPage 🔒
    join

    Constants§

    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 1c46b950..1b5e3aae 100644 --- a/mcaptcha/pages/auth/register/struct.INDEX.html +++ b/mcaptcha/pages/auth/register/struct.INDEX.html @@ -1,23 +1,22 @@ -INDEX in mcaptcha::pages::auth::register - Rust -

    Struct mcaptcha::pages::auth::register::INDEX

    source ·
    struct INDEX {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +INDEX in mcaptcha::pages::auth::register - Rust

    Struct INDEX

    Source
    struct INDEX {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for INDEX

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for INDEX

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for INDEX

    §

    impl Send for INDEX

    §

    impl Sync for INDEX

    §

    impl Unpin for INDEX

    §

    impl UnwindSafe for INDEX

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for INDEX

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for INDEX

    Auto Trait Implementations§

    §

    impl Freeze for INDEX

    §

    impl RefUnwindSafe for INDEX

    §

    impl Send for INDEX

    §

    impl Sync for INDEX

    §

    impl Unpin for INDEX

    §

    impl UnwindSafe for INDEX

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 cd1a525e..ab84dc77 100644 --- a/mcaptcha/pages/auth/register/struct.IndexPage.html +++ b/mcaptcha/pages/auth/register/struct.IndexPage.html @@ -1,19 +1,36 @@ -IndexPage in mcaptcha::pages::auth::register - Rust -
    struct IndexPage;

    Trait Implementations§

    source§

    impl Clone for IndexPage

    source§

    fn clone(&self) -> IndexPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for IndexPage

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::pages::auth::register - Rust

    Struct IndexPage

    Source
    struct IndexPage;

    Trait Implementations§

    Source§

    impl Clone for IndexPage

    Source§

    fn clone(&self) -> IndexPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for IndexPage

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 177dd982..5ad6fe88 100644 --- a/mcaptcha/pages/auth/register/struct.join.html +++ b/mcaptcha/pages/auth/register/struct.join.html @@ -1,18 +1,32 @@ -join in mcaptcha::pages::auth::register - Rust -

    Struct mcaptcha::pages::auth::register::join

    source ·
    pub struct join;

    Trait Implementations§

    source§

    impl HttpServiceFactory for join

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for join

    §

    impl Send for join

    §

    impl Sync for join

    §

    impl Unpin for join

    §

    impl UnwindSafe for join

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +join in mcaptcha::pages::auth::register - Rust

    Struct join

    Source
    pub struct join;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for join

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for join

    §

    impl RefUnwindSafe for join

    §

    impl Send for join

    §

    impl Sync for join

    §

    impl Unpin for join

    §

    impl UnwindSafe for join

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/auth/routes/index.html b/mcaptcha/pages/auth/routes/index.html index ff62a8e4..3594cd57 100644 --- a/mcaptcha/pages/auth/routes/index.html +++ b/mcaptcha/pages/auth/routes/index.html @@ -1,2 +1 @@ -mcaptcha::pages::auth::routes - Rust -

    Module mcaptcha::pages::auth::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::pages::auth::routes - Rust

    Module routes

    Source

    Structs§

    Auth
    \ 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 982ced03..a94c4582 100644 --- a/mcaptcha/pages/auth/routes/struct.Auth.html +++ b/mcaptcha/pages/auth/routes/struct.Auth.html @@ -1,21 +1,35 @@ -Auth in mcaptcha::pages::auth::routes - Rust -

    Struct mcaptcha::pages::auth::routes::Auth

    source ·
    pub struct Auth {
    -    pub login: &'static str,
    -    pub join: &'static str,
    -}

    Fields§

    §login: &'static str§join: &'static str

    Implementations§

    source§

    impl Auth

    source

    pub const fn new() -> Auth

    source

    pub const fn get_sitemap() -> [&'static str; 2]

    Trait Implementations§

    source§

    impl GetLoginRoute for Auth

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Auth

    §

    impl Send for Auth

    §

    impl Sync for Auth

    §

    impl Unpin for Auth

    §

    impl UnwindSafe for Auth

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Auth in mcaptcha::pages::auth::routes - Rust

    Struct Auth

    Source
    pub struct Auth {
    +    pub login: &'static str,
    +    pub join: &'static str,
    +}

    Fields§

    §login: &'static str§join: &'static str

    Implementations§

    Source§

    impl Auth

    Source

    pub const fn new() -> Auth

    Source

    pub const fn get_sitemap() -> [&'static str; 2]

    Trait Implementations§

    Source§

    impl GetLoginRoute for Auth

    Auto Trait Implementations§

    §

    impl Freeze for Auth

    §

    impl RefUnwindSafe for Auth

    §

    impl Send for Auth

    §

    impl Sync for Auth

    §

    impl Unpin for Auth

    §

    impl UnwindSafe for Auth

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 c7f00975..346fbe93 100644 --- a/mcaptcha/pages/auth/sudo/constant.PAGE.html +++ b/mcaptcha/pages/auth/sudo/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::auth::sudo - Rust -

    Constant mcaptcha::pages::auth::sudo::PAGE

    source ·
    pub const PAGE: &str = "Confirm Access";
    \ No newline at end of file +PAGE in mcaptcha::pages::auth::sudo - Rust

    Constant 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 c25af8da..b82dd25a 100644 --- a/mcaptcha/pages/auth/sudo/index.html +++ b/mcaptcha/pages/auth/sudo/index.html @@ -1,2 +1 @@ -mcaptcha::pages::auth::sudo - Rust -

    Module mcaptcha::pages::auth::sudo

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::pages::auth::sudo - Rust

    Module sudo

    Source

    Structs§

    SudoPage

    Constants§

    PAGE
    \ 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 233178a6..d0458212 100644 --- a/mcaptcha/pages/auth/sudo/struct.SudoPage.html +++ b/mcaptcha/pages/auth/sudo/struct.SudoPage.html @@ -1,42 +1,59 @@ -SudoPage in mcaptcha::pages::auth::sudo - Rust -

    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 str§data: Option<Vec<(K, V)>>

    Implementations§

    source§

    impl<'a, K, V> SudoPage<'a, K, V>
    where - K: Display + Render, - V: Display + Render,

    source

    pub fn new(url: &'a str, data: Option<Vec<(K, V)>>) -> Self

    Trait Implementations§

    source§

    impl<'a, K, V> Clone for SudoPage<'a, K, V>
    where - K: Display + Render + Clone, - V: Display + Render + Clone,

    source§

    fn clone(&self) -> SudoPage<'a, K, V>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a, K, V> TemplateOnce for SudoPage<'a, K, V>
    where - K: Display + Render, - V: Display + Render,

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl<'a, K, V> Sealed for SudoPage<'a, K, V>
    where - K: Display + Render, - V: Display + Render,

    Auto Trait Implementations§

    §

    impl<'a, K, V> RefUnwindSafe for SudoPage<'a, K, V>
    where - K: RefUnwindSafe, - V: RefUnwindSafe,

    §

    impl<'a, K, V> Send for SudoPage<'a, K, V>
    where - K: Send, - V: Send,

    §

    impl<'a, K, V> Sync for SudoPage<'a, K, V>
    where - K: Sync, - V: Sync,

    §

    impl<'a, K, V> Unpin for SudoPage<'a, K, V>
    where - K: Unpin, - V: Unpin,

    §

    impl<'a, K, V> UnwindSafe for SudoPage<'a, K, V>
    where - K: UnwindSafe, - V: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +SudoPage in mcaptcha::pages::auth::sudo - Rust

    Struct 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 str§data: Option<Vec<(K, V)>>

    Implementations§

    Source§

    impl<'a, K, V> SudoPage<'a, K, V>
    where + K: Display + Render, + V: Display + Render,

    Source

    pub fn new(url: &'a str, data: Option<Vec<(K, V)>>) -> Self

    Trait Implementations§

    Source§

    impl<'a, K, V> Clone for SudoPage<'a, K, V>
    where + K: Display + Render + Clone, + V: Display + Render + Clone,

    Source§

    fn clone(&self) -> SudoPage<'a, K, V>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a, K, V> TemplateOnce for SudoPage<'a, K, V>
    where + K: Display + Render, + V: Display + Render,

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl<'a, K, V> Sealed for SudoPage<'a, K, V>
    where + K: Display + Render, + V: Display + Render,

    Auto Trait Implementations§

    §

    impl<'a, K, V> Freeze for SudoPage<'a, K, V>

    §

    impl<'a, K, V> RefUnwindSafe for SudoPage<'a, K, V>
    where + K: RefUnwindSafe, + V: RefUnwindSafe,

    §

    impl<'a, K, V> Send for SudoPage<'a, K, V>
    where + K: Send, + V: Send,

    §

    impl<'a, K, V> Sync for SudoPage<'a, K, V>
    where + K: Sync, + V: Sync,

    §

    impl<'a, K, V> Unpin for SudoPage<'a, K, V>
    where + K: Unpin, + V: Unpin,

    §

    impl<'a, K, V> UnwindSafe for SudoPage<'a, K, V>
    where + K: UnwindSafe, + V: UnwindSafe,

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/pages/constant.NAME.html b/mcaptcha/pages/constant.NAME.html index 05788e0f..3dfaf897 100644 --- a/mcaptcha/pages/constant.NAME.html +++ b/mcaptcha/pages/constant.NAME.html @@ -1,2 +1 @@ -NAME in mcaptcha::pages - Rust -

    Constant mcaptcha::pages::NAME

    source ·
    pub const NAME: &str = "mCaptcha";
    \ No newline at end of file +NAME in mcaptcha::pages - Rust

    Constant 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 362c8c4b..83c50e21 100644 --- a/mcaptcha/pages/errors/constant.ERROR_ROUTE.html +++ b/mcaptcha/pages/errors/constant.ERROR_ROUTE.html @@ -1,2 +1 @@ -ERROR_ROUTE in mcaptcha::pages::errors - Rust -

    Constant mcaptcha::pages::errors::ERROR_ROUTE

    source ·
    const ERROR_ROUTE: &str = "/error/{id}";
    \ No newline at end of file +ERROR_ROUTE in mcaptcha::pages::errors - Rust

    Constant 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 92913c90..4e138b13 100644 --- a/mcaptcha/pages/errors/constant.PAGE.html +++ b/mcaptcha/pages/errors/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::errors - Rust -

    Constant mcaptcha::pages::errors::PAGE

    source ·
    const PAGE: &str = "Error";
    \ No newline at end of file +PAGE in mcaptcha::pages::errors - Rust

    Constant 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 51cdc1b2..1db43bcb 100644 --- a/mcaptcha/pages/errors/fn.services.html +++ b/mcaptcha/pages/errors/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::pages::errors - Rust -

    Function mcaptcha::pages::errors::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::pages::errors - Rust

    Function 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 7f4ea1a2..5adf5807 100644 --- a/mcaptcha/pages/errors/index.html +++ b/mcaptcha/pages/errors/index.html @@ -1,2 +1 @@ -mcaptcha::pages::errors - Rust -

    Module mcaptcha::pages::errors

    source ·

    Modules§

    Structs§

    Constants§

    Functions§

    \ No newline at end of file +mcaptcha::pages::errors - Rust

    Module errors

    Source

    Modules§

    routes

    Structs§

    ErrorPage 🔒
    INTERNAL_SERVER_ERROR_BODY 🔒
    UNKNOWN_ERROR_BODY 🔒
    error

    Constants§

    ERROR_ROUTE 🔒
    PAGE 🔒

    Functions§

    services
    \ No newline at end of file diff --git a/mcaptcha/pages/errors/routes/index.html b/mcaptcha/pages/errors/routes/index.html index e99f8f41..f8283bba 100644 --- a/mcaptcha/pages/errors/routes/index.html +++ b/mcaptcha/pages/errors/routes/index.html @@ -1,2 +1 @@ -mcaptcha::pages::errors::routes - Rust -

    Module mcaptcha::pages::errors::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::pages::errors::routes - Rust

    Module routes

    Source

    Structs§

    Errors
    \ 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 82d6e3e2..64e160a5 100644 --- a/mcaptcha/pages/errors/routes/struct.Errors.html +++ b/mcaptcha/pages/errors/routes/struct.Errors.html @@ -1,21 +1,35 @@ -Errors in mcaptcha::pages::errors::routes - Rust -
    pub struct Errors {
    -    pub internal_server_error: &'static str,
    -    pub unknown_error: &'static str,
    -}

    Fields§

    §internal_server_error: &'static str§unknown_error: &'static str

    Implementations§

    source§

    impl Errors

    source

    pub const fn new() -> Self

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Errors in mcaptcha::pages::errors::routes - Rust

    Struct Errors

    Source
    pub struct Errors {
    +    pub internal_server_error: &'static str,
    +    pub unknown_error: &'static str,
    +}

    Fields§

    §internal_server_error: &'static str§unknown_error: &'static str

    Implementations§

    Source§

    impl Errors

    Source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl Freeze for Errors

    §

    impl RefUnwindSafe for Errors

    §

    impl Send for Errors

    §

    impl Sync for Errors

    §

    impl Unpin for Errors

    §

    impl UnwindSafe for Errors

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/errors/struct.ErrorPage.html b/mcaptcha/pages/errors/struct.ErrorPage.html index 01be9227..c2c0bf2c 100644 --- a/mcaptcha/pages/errors/struct.ErrorPage.html +++ b/mcaptcha/pages/errors/struct.ErrorPage.html @@ -1,22 +1,39 @@ -ErrorPage in mcaptcha::pages::errors - Rust -
    struct ErrorPage<'a> {
    -    title: &'a str,
    -    message: &'a str,
    -}

    Fields§

    §title: &'a str§message: &'a str

    Implementations§

    source§

    impl<'a> ErrorPage<'a>

    source

    fn new(title: &'a str, message: &'a str) -> Self

    Trait Implementations§

    source§

    impl<'a> Clone for ErrorPage<'a>

    source§

    fn clone(&self) -> ErrorPage<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> TemplateOnce for ErrorPage<'a>

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl<'a> Sealed for ErrorPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for ErrorPage<'a>

    §

    impl<'a> Send for ErrorPage<'a>

    §

    impl<'a> Sync for ErrorPage<'a>

    §

    impl<'a> Unpin for ErrorPage<'a>

    §

    impl<'a> UnwindSafe for ErrorPage<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +ErrorPage in mcaptcha::pages::errors - Rust

    Struct ErrorPage

    Source
    struct ErrorPage<'a> {
    +    title: &'a str,
    +    message: &'a str,
    +}

    Fields§

    §title: &'a str§message: &'a str

    Implementations§

    Source§

    impl<'a> ErrorPage<'a>

    Source

    fn new(title: &'a str, message: &'a str) -> Self

    Trait Implementations§

    Source§

    impl<'a> Clone for ErrorPage<'a>

    Source§

    fn clone(&self) -> ErrorPage<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> TemplateOnce for ErrorPage<'a>

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl<'a> Sealed for ErrorPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for ErrorPage<'a>

    §

    impl<'a> RefUnwindSafe for ErrorPage<'a>

    §

    impl<'a> Send for ErrorPage<'a>

    §

    impl<'a> Sync for ErrorPage<'a>

    §

    impl<'a> Unpin for ErrorPage<'a>

    §

    impl<'a> UnwindSafe for ErrorPage<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 3e578492..11e6869e 100644 --- a/mcaptcha/pages/errors/struct.INTERNAL_SERVER_ERROR_BODY.html +++ b/mcaptcha/pages/errors/struct.INTERNAL_SERVER_ERROR_BODY.html @@ -1,23 +1,22 @@ -INTERNAL_SERVER_ERROR_BODY in mcaptcha::pages::errors - Rust -
    struct INTERNAL_SERVER_ERROR_BODY {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +INTERNAL_SERVER_ERROR_BODY in mcaptcha::pages::errors - Rust

    Struct INTERNAL_SERVER_ERROR_BODY

    Source
    struct INTERNAL_SERVER_ERROR_BODY {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for INTERNAL_SERVER_ERROR_BODY

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for INTERNAL_SERVER_ERROR_BODY

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for INTERNAL_SERVER_ERROR_BODY

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for INTERNAL_SERVER_ERROR_BODY

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 71965747..e0646919 100644 --- a/mcaptcha/pages/errors/struct.UNKNOWN_ERROR_BODY.html +++ b/mcaptcha/pages/errors/struct.UNKNOWN_ERROR_BODY.html @@ -1,23 +1,22 @@ -UNKNOWN_ERROR_BODY in mcaptcha::pages::errors - Rust -
    struct UNKNOWN_ERROR_BODY {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +UNKNOWN_ERROR_BODY in mcaptcha::pages::errors - Rust

    Struct UNKNOWN_ERROR_BODY

    Source
    struct UNKNOWN_ERROR_BODY {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for UNKNOWN_ERROR_BODY

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for UNKNOWN_ERROR_BODY

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for UNKNOWN_ERROR_BODY

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for UNKNOWN_ERROR_BODY

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/errors/struct.error.html b/mcaptcha/pages/errors/struct.error.html index 89b50457..91d1f793 100644 --- a/mcaptcha/pages/errors/struct.error.html +++ b/mcaptcha/pages/errors/struct.error.html @@ -1,18 +1,32 @@ -error in mcaptcha::pages::errors - Rust -

    Struct mcaptcha::pages::errors::error

    source ·
    pub struct error;

    Trait Implementations§

    source§

    impl HttpServiceFactory for error

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for error

    §

    impl Send for error

    §

    impl Sync for error

    §

    impl Unpin for error

    §

    impl UnwindSafe for error

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +error in mcaptcha::pages::errors - Rust

    Struct error

    Source
    pub struct error;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for error

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for error

    §

    impl RefUnwindSafe for error

    §

    impl Send for error

    §

    impl Sync for error

    §

    impl Unpin for error

    §

    impl UnwindSafe for error

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/fn.get_middleware.html b/mcaptcha/pages/fn.get_middleware.html index 1c3d3e8d..f33ade38 100644 --- a/mcaptcha/pages/fn.get_middleware.html +++ b/mcaptcha/pages/fn.get_middleware.html @@ -1,2 +1 @@ -get_middleware in mcaptcha::pages - Rust -

    Function mcaptcha::pages::get_middleware

    source ·
    pub fn get_middleware() -> Authentication<Routes>
    \ No newline at end of file +get_middleware in mcaptcha::pages - Rust

    Function 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 1ad3557a..0a253566 100644 --- a/mcaptcha/pages/fn.services.html +++ b/mcaptcha/pages/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::pages - Rust -

    Function mcaptcha::pages::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::pages - Rust

    Function 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 badc7832..27aa659f 100644 --- a/mcaptcha/pages/index.html +++ b/mcaptcha/pages/index.html @@ -1,2 +1 @@ -mcaptcha::pages - Rust -

    Module mcaptcha::pages

    source ·

    Modules§

    Constants§

    Functions§

    \ No newline at end of file +mcaptcha::pages - Rust

    Module pages

    Source

    Modules§

    auth 🔒
    errors
    panel 🔒
    routes
    sitemap 🔒

    Constants§

    NAME

    Functions§

    get_middleware
    services
    \ No newline at end of file diff --git a/mcaptcha/pages/panel/constant.PAGE.html b/mcaptcha/pages/panel/constant.PAGE.html index a7fd3ec6..f9493689 100644 --- a/mcaptcha/pages/panel/constant.PAGE.html +++ b/mcaptcha/pages/panel/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel - Rust -

    Constant mcaptcha::pages::panel::PAGE

    source ·
    const PAGE: &str = "Dashboard";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel - Rust

    Constant 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 9723c7b7..2fb89b19 100644 --- a/mcaptcha/pages/panel/fn.services.html +++ b/mcaptcha/pages/panel/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::pages::panel - Rust -

    Function mcaptcha::pages::panel::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::pages::panel - Rust

    Function 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 e6a93613..cf5166be 100644 --- a/mcaptcha/pages/panel/index.html +++ b/mcaptcha/pages/panel/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel - Rust -

    Module mcaptcha::pages::panel

    source ·

    Modules§

    Structs§

    Constants§

    Functions§

    \ No newline at end of file +mcaptcha::pages::panel - Rust

    Module panel

    Source

    Modules§

    notifications 🔒
    routes
    settings 🔒
    sitekey
    utils 🔒

    Structs§

    IndexPage
    panel

    Constants§

    PAGE 🔒

    Functions§

    services
    \ 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 649f3103..80fc2e71 100644 --- a/mcaptcha/pages/panel/notifications/constant.PAGE.html +++ b/mcaptcha/pages/panel/notifications/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel::notifications - Rust -
    const PAGE: &str = "Notifications";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel::notifications - Rust

    Constant 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 73fe5f49..f0d6acc9 100644 --- a/mcaptcha/pages/panel/notifications/index.html +++ b/mcaptcha/pages/panel/notifications/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::notifications - Rust -
    \ No newline at end of file +mcaptcha::pages::panel::notifications - Rust

    Module notifications

    Source

    Structs§

    IndexPage
    Notification
    notifications

    Constants§

    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 0141025a..c12c402d 100644 --- a/mcaptcha/pages/panel/notifications/struct.IndexPage.html +++ b/mcaptcha/pages/panel/notifications/struct.IndexPage.html @@ -1,21 +1,35 @@ -IndexPage in mcaptcha::pages::panel::notifications - Rust -
    pub struct IndexPage {
    -    n: Vec<Notification>,
    -}

    Fields§

    §n: Vec<Notification>

    notifications

    -

    Implementations§

    Trait Implementations§

    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::pages::panel::notifications - Rust

    Struct IndexPage

    Source
    pub struct IndexPage {
    +    n: Vec<Notification>,
    +}

    Fields§

    §n: Vec<Notification>

    notifications

    +

    Implementations§

    Trait Implementations§

    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 9211a7b7..68f3dfa4 100644 --- a/mcaptcha/pages/panel/notifications/struct.Notification.html +++ b/mcaptcha/pages/panel/notifications/struct.Notification.html @@ -1,24 +1,38 @@ -Notification in mcaptcha::pages::panel::notifications - Rust -
    pub struct Notification {
    -    pub name: String,
    -    pub heading: String,
    -    pub message: String,
    +Notification in mcaptcha::pages::panel::notifications - Rust

    Struct Notification

    Source
    pub struct Notification {
    +    pub name: String,
    +    pub heading: String,
    +    pub message: String,
         pub received: OffsetDateTime,
    -    pub id: i32,
    -}

    Fields§

    §name: String§heading: String§message: String§received: OffsetDateTime§id: i32

    Implementations§

    Trait Implementations§

    source§

    impl From<Notification> for Notification

    source§

    fn from(n: Notification) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + pub id: i32, +}

    Fields§

    §name: String§heading: String§message: String§received: OffsetDateTime§id: i32

    Implementations§

    Trait Implementations§

    Source§

    impl From<Notification> for Notification

    Source§

    fn from(n: Notification) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 60c15551..ba5b1d34 100644 --- a/mcaptcha/pages/panel/notifications/struct.notifications.html +++ b/mcaptcha/pages/panel/notifications/struct.notifications.html @@ -1,18 +1,32 @@ -notifications in mcaptcha::pages::panel::notifications - Rust -
    pub struct notifications;

    Trait Implementations§

    source§

    impl HttpServiceFactory for notifications

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +notifications in mcaptcha::pages::panel::notifications - Rust

    Struct notifications

    Source
    pub struct notifications;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for notifications

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/panel/routes/index.html b/mcaptcha/pages/panel/routes/index.html index 5c7a50d4..f4d4fa70 100644 --- a/mcaptcha/pages/panel/routes/index.html +++ b/mcaptcha/pages/panel/routes/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::routes - Rust -

    Module mcaptcha::pages::panel::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::pages::panel::routes - Rust

    Module routes

    Source

    Structs§

    Panel
    \ 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 f09951bb..1f91f11a 100644 --- a/mcaptcha/pages/panel/routes/struct.Panel.html +++ b/mcaptcha/pages/panel/routes/struct.Panel.html @@ -1,24 +1,38 @@ -Panel in mcaptcha::pages::panel::routes - Rust -

    Struct mcaptcha::pages::panel::routes::Panel

    source ·
    pub struct Panel {
    -    pub home: &'static str,
    +Panel in mcaptcha::pages::panel::routes - Rust

    Struct Panel

    Source
    pub struct Panel {
    +    pub home: &'static str,
         pub sitekey: Sitekey,
    -    pub notifications: &'static str,
    +    pub notifications: &'static str,
         pub settings: Settings,
         pub utils: Utils,
    -}

    Fields§

    §home: &'static str§sitekey: Sitekey§notifications: &'static str§settings: Settings§utils: Utils

    Implementations§

    source§

    impl Panel

    source

    pub const fn new() -> Self

    source

    pub const fn get_sitemap() -> [&'static str; 6]

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Panel

    §

    impl Send for Panel

    §

    impl Sync for Panel

    §

    impl Unpin for Panel

    §

    impl UnwindSafe for Panel

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §home: &'static str§sitekey: Sitekey§notifications: &'static str§settings: Settings§utils: Utils

    Implementations§

    Source§

    impl Panel

    Source

    pub const fn new() -> Self

    Source

    pub const fn get_sitemap() -> [&'static str; 6]

    Auto Trait Implementations§

    §

    impl Freeze for Panel

    §

    impl RefUnwindSafe for Panel

    §

    impl Send for Panel

    §

    impl Sync for Panel

    §

    impl Unpin for Panel

    §

    impl UnwindSafe for Panel

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 d3bb5061..0c696d73 100644 --- a/mcaptcha/pages/panel/settings/constant.PAGE.html +++ b/mcaptcha/pages/panel/settings/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel::settings - Rust -

    Constant mcaptcha::pages::panel::settings::PAGE

    source ·
    const PAGE: &str = "Settings";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel::settings - Rust

    Constant 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 c47921b7..86be48f9 100644 --- a/mcaptcha/pages/panel/settings/fn.services.html +++ b/mcaptcha/pages/panel/settings/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::pages::panel::settings - Rust -
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::pages::panel::settings - Rust

    Function 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 e8572859..b36f5d09 100644 --- a/mcaptcha/pages/panel/settings/index.html +++ b/mcaptcha/pages/panel/settings/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::settings - Rust -
    \ No newline at end of file +mcaptcha::pages::panel::settings - Rust

    Module settings

    Source

    Modules§

    routes

    Structs§

    IndexPage
    delete_account
    settings
    update_secret

    Constants§

    PAGE 🔒

    Functions§

    services
    \ 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 b01d6078..598dc0e0 100644 --- a/mcaptcha/pages/panel/settings/routes/index.html +++ b/mcaptcha/pages/panel/settings/routes/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::settings::routes - Rust -
    \ No newline at end of file +mcaptcha::pages::panel::settings::routes - Rust

    Module routes

    Source

    Structs§

    Settings
    \ 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 3fe3bca6..cb9dd4a6 100644 --- a/mcaptcha/pages/panel/settings/routes/struct.Settings.html +++ b/mcaptcha/pages/panel/settings/routes/struct.Settings.html @@ -1,22 +1,36 @@ -Settings in mcaptcha::pages::panel::settings::routes - Rust -
    pub struct Settings {
    -    pub home: &'static str,
    -    pub delete_account: &'static str,
    -    pub update_secret: &'static str,
    -}

    Fields§

    §home: &'static str§delete_account: &'static str§update_secret: &'static str

    Implementations§

    source§

    impl Settings

    source

    pub const fn new() -> Self

    source

    pub const fn get_sitemap() -> [&'static str; 1]

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Settings in mcaptcha::pages::panel::settings::routes - Rust

    Struct Settings

    Source
    pub struct Settings {
    +    pub home: &'static str,
    +    pub delete_account: &'static str,
    +    pub update_secret: &'static str,
    +}

    Fields§

    §home: &'static str§delete_account: &'static str§update_secret: &'static str

    Implementations§

    Source§

    impl Settings

    Source

    pub const fn new() -> Self

    Source

    pub const fn get_sitemap() -> [&'static str; 1]

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 78451719..bce05470 100644 --- a/mcaptcha/pages/panel/settings/struct.IndexPage.html +++ b/mcaptcha/pages/panel/settings/struct.IndexPage.html @@ -1,23 +1,40 @@ -IndexPage in mcaptcha::pages::panel::settings - Rust -
    pub struct IndexPage<'a> {
    -    email: Option<String>,
    -    secret: String,
    -    username: &'a str,
    -}

    Fields§

    §email: Option<String>§secret: String§username: &'a str

    Trait Implementations§

    source§

    impl<'a> Clone for IndexPage<'a>

    source§

    fn clone(&self) -> IndexPage<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> TemplateOnce for IndexPage<'a>

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl<'a> Sealed for IndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for IndexPage<'a>

    §

    impl<'a> Send for IndexPage<'a>

    §

    impl<'a> Sync for IndexPage<'a>

    §

    impl<'a> Unpin for IndexPage<'a>

    §

    impl<'a> UnwindSafe for IndexPage<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::pages::panel::settings - Rust

    Struct IndexPage

    Source
    pub struct IndexPage<'a> {
    +    email: Option<String>,
    +    secret: String,
    +    username: &'a str,
    +}

    Fields§

    §email: Option<String>§secret: String§username: &'a str

    Trait Implementations§

    Source§

    impl<'a> Clone for IndexPage<'a>

    Source§

    fn clone(&self) -> IndexPage<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> TemplateOnce for IndexPage<'a>

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl<'a> Sealed for IndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for IndexPage<'a>

    §

    impl<'a> RefUnwindSafe for IndexPage<'a>

    §

    impl<'a> Send for IndexPage<'a>

    §

    impl<'a> Sync for IndexPage<'a>

    §

    impl<'a> Unpin for IndexPage<'a>

    §

    impl<'a> UnwindSafe for IndexPage<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 1427e5b6..b5bdf72b 100644 --- a/mcaptcha/pages/panel/settings/struct.delete_account.html +++ b/mcaptcha/pages/panel/settings/struct.delete_account.html @@ -1,18 +1,32 @@ -delete_account in mcaptcha::pages::panel::settings - Rust -
    pub struct delete_account;

    Trait Implementations§

    source§

    impl HttpServiceFactory for delete_account

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +delete_account in mcaptcha::pages::panel::settings - Rust

    Struct delete_account

    Source
    pub struct delete_account;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for delete_account

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ad54b5be..0d3c3b53 100644 --- a/mcaptcha/pages/panel/settings/struct.settings.html +++ b/mcaptcha/pages/panel/settings/struct.settings.html @@ -1,18 +1,32 @@ -settings in mcaptcha::pages::panel::settings - Rust -
    pub struct settings;

    Trait Implementations§

    source§

    impl HttpServiceFactory for settings

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +settings in mcaptcha::pages::panel::settings - Rust

    Struct settings

    Source
    pub struct settings;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for settings

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 20b7a174..983286de 100644 --- a/mcaptcha/pages/panel/settings/struct.update_secret.html +++ b/mcaptcha/pages/panel/settings/struct.update_secret.html @@ -1,18 +1,32 @@ -update_secret in mcaptcha::pages::panel::settings - Rust -
    pub struct update_secret;

    Trait Implementations§

    source§

    impl HttpServiceFactory for update_secret

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +update_secret in mcaptcha::pages::panel::settings - Rust

    Struct update_secret

    Source
    pub struct update_secret;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for update_secret

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 15817233..4596c641 100644 --- a/mcaptcha/pages/panel/sitekey/add/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/add/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel::sitekey::add - Rust -

    Constant mcaptcha::pages::panel::sitekey::add::PAGE

    source ·
    const PAGE: &str = "Add Sitekey";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel::sitekey::add - Rust

    Constant 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 139638f7..ab4c3e5e 100644 --- a/mcaptcha/pages/panel/sitekey/add/index.html +++ b/mcaptcha/pages/panel/sitekey/add/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::sitekey::add - Rust -
    \ No newline at end of file +mcaptcha::pages::panel::sitekey::add - Rust

    Module add

    Source

    Structs§

    ADVANCE_INDEX 🔒
    AdvanceIndexPage
    EASY_INDEX 🔒
    EasyIndexPage
    advance
    easy

    Constants§

    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 34d2020f..15b914f4 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.ADVANCE_INDEX.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.ADVANCE_INDEX.html @@ -1,23 +1,22 @@ -ADVANCE_INDEX in mcaptcha::pages::panel::sitekey::add - Rust -
    struct ADVANCE_INDEX {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +ADVANCE_INDEX in mcaptcha::pages::panel::sitekey::add - Rust

    Struct ADVANCE_INDEX

    Source
    struct ADVANCE_INDEX {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for ADVANCE_INDEX

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for ADVANCE_INDEX

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for ADVANCE_INDEX

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for ADVANCE_INDEX

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ca91534d..83c6d0e7 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.AdvanceIndexPage.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.AdvanceIndexPage.html @@ -1,24 +1,41 @@ -AdvanceIndexPage in mcaptcha::pages::panel::sitekey::add - Rust -
    pub struct AdvanceIndexPage<'a> {
    -    pub levels: usize,
    -    pub form_title: &'a str,
    -    pub form_description: &'a str,
    -    pub form_duration: usize,
    -}

    Fields§

    §levels: usize§form_title: &'a str§form_description: &'a str§form_duration: usize

    Trait Implementations§

    source§

    impl<'a> Clone for AdvanceIndexPage<'a>

    source§

    fn clone(&self) -> AdvanceIndexPage<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> Default for AdvanceIndexPage<'a>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<'a> TemplateOnce for AdvanceIndexPage<'a>

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl<'a> Sealed for AdvanceIndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for AdvanceIndexPage<'a>

    §

    impl<'a> Send for AdvanceIndexPage<'a>

    §

    impl<'a> Sync for AdvanceIndexPage<'a>

    §

    impl<'a> Unpin for AdvanceIndexPage<'a>

    §

    impl<'a> UnwindSafe for AdvanceIndexPage<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +AdvanceIndexPage in mcaptcha::pages::panel::sitekey::add - Rust

    Struct AdvanceIndexPage

    Source
    pub struct AdvanceIndexPage<'a> {
    +    pub levels: usize,
    +    pub form_title: &'a str,
    +    pub form_description: &'a str,
    +    pub form_duration: usize,
    +}

    Fields§

    §levels: usize§form_title: &'a str§form_description: &'a str§form_duration: usize

    Trait Implementations§

    Source§

    impl<'a> Clone for AdvanceIndexPage<'a>

    Source§

    fn clone(&self) -> AdvanceIndexPage<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> Default for AdvanceIndexPage<'a>

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    Source§

    impl<'a> TemplateOnce for AdvanceIndexPage<'a>

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl<'a> Sealed for AdvanceIndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for AdvanceIndexPage<'a>

    §

    impl<'a> RefUnwindSafe for AdvanceIndexPage<'a>

    §

    impl<'a> Send for AdvanceIndexPage<'a>

    §

    impl<'a> Sync for AdvanceIndexPage<'a>

    §

    impl<'a> Unpin for AdvanceIndexPage<'a>

    §

    impl<'a> UnwindSafe for AdvanceIndexPage<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 1a5016ee..c6fb3de2 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.EASY_INDEX.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.EASY_INDEX.html @@ -1,23 +1,22 @@ -EASY_INDEX in mcaptcha::pages::panel::sitekey::add - Rust -
    struct EASY_INDEX {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +EASY_INDEX in mcaptcha::pages::panel::sitekey::add - Rust

    Struct EASY_INDEX

    Source
    struct EASY_INDEX {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for EASY_INDEX

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for EASY_INDEX

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for EASY_INDEX

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for EASY_INDEX

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 3029a774..6c331a74 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.EasyIndexPage.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.EasyIndexPage.html @@ -1,25 +1,42 @@ -EasyIndexPage in mcaptcha::pages::panel::sitekey::add - Rust -
    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 str§form_title: &'a str§peak_sustainable_traffic: Option<usize>§avg_traffic: Option<usize>§broke_my_site_traffic: Option<usize>

    Trait Implementations§

    source§

    impl<'a> Clone for EasyIndexPage<'a>

    source§

    fn clone(&self) -> EasyIndexPage<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> Default for EasyIndexPage<'a>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<'a> TemplateOnce for EasyIndexPage<'a>

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl<'a> Sealed for EasyIndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for EasyIndexPage<'a>

    §

    impl<'a> Send for EasyIndexPage<'a>

    §

    impl<'a> Sync for EasyIndexPage<'a>

    §

    impl<'a> Unpin for EasyIndexPage<'a>

    §

    impl<'a> UnwindSafe for EasyIndexPage<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +EasyIndexPage in mcaptcha::pages::panel::sitekey::add - Rust

    Struct EasyIndexPage

    Source
    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 str§form_title: &'a str§peak_sustainable_traffic: Option<usize>§avg_traffic: Option<usize>§broke_my_site_traffic: Option<usize>

    Trait Implementations§

    Source§

    impl<'a> Clone for EasyIndexPage<'a>

    Source§

    fn clone(&self) -> EasyIndexPage<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> Default for EasyIndexPage<'a>

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    Source§

    impl<'a> TemplateOnce for EasyIndexPage<'a>

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl<'a> Sealed for EasyIndexPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for EasyIndexPage<'a>

    §

    impl<'a> RefUnwindSafe for EasyIndexPage<'a>

    §

    impl<'a> Send for EasyIndexPage<'a>

    §

    impl<'a> Sync for EasyIndexPage<'a>

    §

    impl<'a> Unpin for EasyIndexPage<'a>

    §

    impl<'a> UnwindSafe for EasyIndexPage<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 d042e073..5fb3da0c 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.advance.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.advance.html @@ -1,18 +1,32 @@ -advance in mcaptcha::pages::panel::sitekey::add - Rust -
    pub struct advance;

    Trait Implementations§

    source§

    impl HttpServiceFactory for advance

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +advance in mcaptcha::pages::panel::sitekey::add - Rust

    Struct advance

    Source
    pub struct advance;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for advance

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 59c3a312..8763878d 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.easy.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.easy.html @@ -1,18 +1,32 @@ -easy in mcaptcha::pages::panel::sitekey::add - Rust -

    Struct mcaptcha::pages::panel::sitekey::add::easy

    source ·
    pub struct easy;

    Trait Implementations§

    source§

    impl HttpServiceFactory for easy

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for easy

    §

    impl Send for easy

    §

    impl Sync for easy

    §

    impl Unpin for easy

    §

    impl UnwindSafe for easy

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +easy in mcaptcha::pages::panel::sitekey::add - Rust

    Struct easy

    Source
    pub struct easy;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for easy

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for easy

    §

    impl RefUnwindSafe for easy

    §

    impl Send for easy

    §

    impl Sync for easy

    §

    impl Unpin for easy

    §

    impl UnwindSafe for easy

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 f2cacb16..f638a37a 100644 --- a/mcaptcha/pages/panel/sitekey/delete/index.html +++ b/mcaptcha/pages/panel/sitekey/delete/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::sitekey::delete - Rust -
    \ No newline at end of file +mcaptcha::pages::panel::sitekey::delete - Rust

    Module delete

    Source

    Structs§

    delete_sitekey
    \ 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 a0464058..92df6f40 100644 --- a/mcaptcha/pages/panel/sitekey/delete/struct.delete_sitekey.html +++ b/mcaptcha/pages/panel/sitekey/delete/struct.delete_sitekey.html @@ -1,18 +1,32 @@ -delete_sitekey in mcaptcha::pages::panel::sitekey::delete - Rust -
    pub struct delete_sitekey;

    Trait Implementations§

    source§

    impl HttpServiceFactory for delete_sitekey

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +delete_sitekey in mcaptcha::pages::panel::sitekey::delete - Rust

    Struct delete_sitekey

    Source
    pub struct delete_sitekey;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for delete_sitekey

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 d51ade68..9c545962 100644 --- a/mcaptcha/pages/panel/sitekey/edit/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/edit/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel::sitekey::edit - Rust -

    Constant mcaptcha::pages::panel::sitekey::edit::PAGE

    source ·
    const PAGE: &str = "Edit Sitekey";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel::sitekey::edit - Rust

    Constant 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 9790b9e7..0b337334 100644 --- a/mcaptcha/pages/panel/sitekey/edit/index.html +++ b/mcaptcha/pages/panel/sitekey/edit/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::sitekey::edit - Rust -

    Module mcaptcha::pages::panel::sitekey::edit

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::pages::panel::sitekey::edit - Rust

    Module edit

    Source

    Structs§

    AdvanceEditPage 🔒
    EasyEditPage
    advance
    route handler that renders individual views for sitekeys
    easy
    route handler that renders individual views for sitekeys

    Constants§

    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 eb0eae37..125bfe8e 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.AdvanceEditPage.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.AdvanceEditPage.html @@ -1,30 +1,47 @@ -AdvanceEditPage in mcaptcha::pages::panel::sitekey::edit - Rust -
    struct AdvanceEditPage {
    -    duration: u32,
    -    name: String,
    -    key: String,
    -    levels: Vec<Level>,
    -    publish_benchmarks: bool,
    -}

    Fields§

    §duration: u32§name: String§key: String§levels: Vec<Level>§publish_benchmarks: bool

    Implementations§

    source§

    impl AdvanceEditPage

    source

    fn new( +AdvanceEditPage in mcaptcha::pages::panel::sitekey::edit - Rust

    Struct AdvanceEditPage

    Source
    struct AdvanceEditPage {
    +    duration: u32,
    +    name: String,
    +    key: String,
    +    levels: Vec<Level>,
    +    publish_benchmarks: bool,
    +}

    Fields§

    §duration: u32§name: String§key: String§levels: Vec<Level>§publish_benchmarks: bool

    Implementations§

    Source§

    impl AdvanceEditPage

    Source

    fn new( config: Captcha, - levels: Vec<Level>, - key: String, - publish_benchmarks: bool -) -> Self

    Trait Implementations§

    source§

    impl Clone for AdvanceEditPage

    source§

    fn clone(&self) -> AdvanceEditPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl TemplateOnce for AdvanceEditPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for AdvanceEditPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + levels: Vec<Level>, + key: String, + publish_benchmarks: bool, +) -> Self

    Trait Implementations§

    Source§

    impl Clone for AdvanceEditPage

    Source§

    fn clone(&self) -> AdvanceEditPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl TemplateOnce for AdvanceEditPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for AdvanceEditPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 51e9e1c6..f71b55af 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.EasyEditPage.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.EasyEditPage.html @@ -1,23 +1,40 @@ -EasyEditPage in mcaptcha::pages::panel::sitekey::edit - Rust -
    pub struct EasyEditPage<'a> {
    -    pub form_title: &'a str,
    +EasyEditPage in mcaptcha::pages::panel::sitekey::edit - Rust

    Struct EasyEditPage

    Source
    pub struct EasyEditPage<'a> {
    +    pub form_title: &'a str,
         pub pattern: TrafficPatternRequest,
    -    pub key: String,
    -}

    Fields§

    §form_title: &'a str§pattern: TrafficPatternRequest§key: String

    Implementations§

    source§

    impl<'a> EasyEditPage<'a>

    source

    pub fn new(key: String, pattern: TrafficPatternRequest) -> Self

    Trait Implementations§

    source§

    impl<'a> Clone for EasyEditPage<'a>

    source§

    fn clone(&self) -> EasyEditPage<'a>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<'a> TemplateOnce for EasyEditPage<'a>

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl<'a> Sealed for EasyEditPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> RefUnwindSafe for EasyEditPage<'a>

    §

    impl<'a> Send for EasyEditPage<'a>

    §

    impl<'a> Sync for EasyEditPage<'a>

    §

    impl<'a> Unpin for EasyEditPage<'a>

    §

    impl<'a> UnwindSafe for EasyEditPage<'a>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + pub key: String, +}

    Fields§

    §form_title: &'a str§pattern: TrafficPatternRequest§key: String

    Implementations§

    Source§

    impl<'a> EasyEditPage<'a>

    Source

    pub fn new(key: String, pattern: TrafficPatternRequest) -> Self

    Trait Implementations§

    Source§

    impl<'a> Clone for EasyEditPage<'a>

    Source§

    fn clone(&self) -> EasyEditPage<'a>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl<'a> TemplateOnce for EasyEditPage<'a>

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl<'a> Sealed for EasyEditPage<'a>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for EasyEditPage<'a>

    §

    impl<'a> RefUnwindSafe for EasyEditPage<'a>

    §

    impl<'a> Send for EasyEditPage<'a>

    §

    impl<'a> Sync for EasyEditPage<'a>

    §

    impl<'a> Unpin for EasyEditPage<'a>

    §

    impl<'a> UnwindSafe for EasyEditPage<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 734008cf..92e1965b 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.advance.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.advance.html @@ -1,19 +1,33 @@ -advance in mcaptcha::pages::panel::sitekey::edit - Rust -
    pub struct advance;
    Expand description

    route handler that renders individual views for sitekeys

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for advance

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +advance in mcaptcha::pages::panel::sitekey::edit - Rust

    Struct advance

    Source
    pub struct advance;
    Expand description

    route handler that renders individual views for sitekeys

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for advance

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 759a7856..e562de16 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.easy.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.easy.html @@ -1,19 +1,33 @@ -easy in mcaptcha::pages::panel::sitekey::edit - Rust -

    Struct mcaptcha::pages::panel::sitekey::edit::easy

    source ·
    pub struct easy;
    Expand description

    route handler that renders individual views for sitekeys

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for easy

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for easy

    §

    impl Send for easy

    §

    impl Sync for easy

    §

    impl Unpin for easy

    §

    impl UnwindSafe for easy

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +easy in mcaptcha::pages::panel::sitekey::edit - Rust

    Struct easy

    Source
    pub struct easy;
    Expand description

    route handler that renders individual views for sitekeys

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for easy

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for easy

    §

    impl RefUnwindSafe for easy

    §

    impl Send for easy

    §

    impl Sync for easy

    §

    impl Unpin for easy

    §

    impl UnwindSafe for easy

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 bfacb348..acab59a6 100644 --- a/mcaptcha/pages/panel/sitekey/fn.services.html +++ b/mcaptcha/pages/panel/sitekey/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::pages::panel::sitekey - Rust -

    Function mcaptcha::pages::panel::sitekey::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::pages::panel::sitekey - Rust

    Function 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 1afda612..9f290e51 100644 --- a/mcaptcha/pages/panel/sitekey/index.html +++ b/mcaptcha/pages/panel/sitekey/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::sitekey - Rust -

    Module mcaptcha::pages::panel::sitekey

    source ·

    Modules§

    Functions§

    \ No newline at end of file +mcaptcha::pages::panel::sitekey - Rust

    Module sitekey

    Source

    Modules§

    add 🔒
    delete 🔒
    edit 🔒
    list
    routes
    view 🔒

    Functions§

    services
    \ 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 db25eaa5..afd987bd 100644 --- a/mcaptcha/pages/panel/sitekey/list/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/list/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel::sitekey::list - Rust -

    Constant mcaptcha::pages::panel::sitekey::list::PAGE

    source ·
    const PAGE: &str = "SiteKeys";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel::sitekey::list - Rust

    Constant 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 ce210701..ed04c1fd 100644 --- a/mcaptcha/pages/panel/sitekey/list/index.html +++ b/mcaptcha/pages/panel/sitekey/list/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::sitekey::list - Rust -

    Module mcaptcha::pages::panel::sitekey::list

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::pages::panel::sitekey::list - Rust

    Module list

    Source

    Structs§

    IndexPage
    list_sitekeys
    render a list of all sitekeys that a user has

    Constants§

    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 2aa95adc..da94291d 100644 --- a/mcaptcha/pages/panel/sitekey/list/struct.IndexPage.html +++ b/mcaptcha/pages/panel/sitekey/list/struct.IndexPage.html @@ -1,21 +1,38 @@ -IndexPage in mcaptcha::pages::panel::sitekey::list - Rust -
    pub struct IndexPage {
    -    sitekeys: Vec<Captcha>,
    -}

    Fields§

    §sitekeys: Vec<Captcha>

    Implementations§

    source§

    impl IndexPage

    source

    fn new(sitekeys: Vec<Captcha>) -> Self

    Trait Implementations§

    source§

    impl Clone for IndexPage

    source§

    fn clone(&self) -> IndexPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::pages::panel::sitekey::list - Rust

    Struct IndexPage

    Source
    pub struct IndexPage {
    +    sitekeys: Vec<Captcha>,
    +}

    Fields§

    §sitekeys: Vec<Captcha>

    Implementations§

    Source§

    impl IndexPage

    Source

    fn new(sitekeys: Vec<Captcha>) -> Self

    Trait Implementations§

    Source§

    impl Clone for IndexPage

    Source§

    fn clone(&self) -> IndexPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 f27c409f..92f1b72a 100644 --- a/mcaptcha/pages/panel/sitekey/list/struct.list_sitekeys.html +++ b/mcaptcha/pages/panel/sitekey/list/struct.list_sitekeys.html @@ -1,19 +1,33 @@ -list_sitekeys in mcaptcha::pages::panel::sitekey::list - Rust -
    pub struct list_sitekeys;
    Expand description

    render a list of all sitekeys that a user has

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for list_sitekeys

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +list_sitekeys in mcaptcha::pages::panel::sitekey::list - Rust

    Struct list_sitekeys

    Source
    pub struct list_sitekeys;
    Expand description

    render a list of all sitekeys that a user has

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for list_sitekeys

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 ee22c8e1..725faa36 100644 --- a/mcaptcha/pages/panel/sitekey/routes/index.html +++ b/mcaptcha/pages/panel/sitekey/routes/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::sitekey::routes - Rust -
    \ No newline at end of file +mcaptcha::pages::panel::sitekey::routes - Rust

    Module routes

    Source

    Structs§

    Sitekey
    \ 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 f0594451..fa22f1ac 100644 --- a/mcaptcha/pages/panel/sitekey/routes/struct.Sitekey.html +++ b/mcaptcha/pages/panel/sitekey/routes/struct.Sitekey.html @@ -1,26 +1,40 @@ -Sitekey in mcaptcha::pages::panel::sitekey::routes - Rust -
    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 str§add_easy: &'static str§add_advance: &'static str§view: &'static str§edit_easy: &'static str§edit_advance: &'static str§delete: &'static str

    Implementations§

    source§

    impl Sitekey

    source

    pub const fn new() -> Self

    source

    pub const fn get_sitemap() -> [&'static str; 2]

    source

    pub fn get_edit_easy(&self, key: &str) -> String

    source

    pub fn get_edit_advance(&self, key: &str) -> String

    source

    pub fn get_view(&self, key: &str) -> String

    source

    pub fn get_delete(&self, key: &str) -> String

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Sitekey in mcaptcha::pages::panel::sitekey::routes - Rust

    Struct Sitekey

    Source
    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 str§add_easy: &'static str§add_advance: &'static str§view: &'static str§edit_easy: &'static str§edit_advance: &'static str§delete: &'static str

    Implementations§

    Source§

    impl Sitekey

    Source

    pub const fn new() -> Self

    Source

    pub const fn get_sitemap() -> [&'static str; 2]

    Source

    pub fn get_edit_easy(&self, key: &str) -> String

    Source

    pub fn get_edit_advance(&self, key: &str) -> String

    Source

    pub fn get_view(&self, key: &str) -> String

    Source

    pub fn get_delete(&self, key: &str) -> String

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 0e4d0fd6..13c830d5 100644 --- a/mcaptcha/pages/panel/sitekey/view/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/view/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel::sitekey::view - Rust -

    Constant mcaptcha::pages::panel::sitekey::view::PAGE

    source ·
    const PAGE: &str = "SiteKeys";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel::sitekey::view - Rust

    Constant 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 415b5280..0be4467a 100644 --- a/mcaptcha/pages/panel/sitekey/view/index.html +++ b/mcaptcha/pages/panel/sitekey/view/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::sitekey::view - Rust -

    Module mcaptcha::pages::panel::sitekey::view

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::pages::panel::sitekey::view - Rust

    Module view

    Source

    Structs§

    IndexPage 🔒
    view_sitekey
    route handler that renders individual views for sitekeys

    Constants§

    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 6d2d6f5e..64ba30f4 100644 --- a/mcaptcha/pages/panel/sitekey/view/struct.IndexPage.html +++ b/mcaptcha/pages/panel/sitekey/view/struct.IndexPage.html @@ -1,32 +1,49 @@ -IndexPage in mcaptcha::pages::panel::sitekey::view - Rust -
    struct IndexPage {
    -    duration: u32,
    -    name: String,
    -    key: String,
    -    levels: Vec<Level>,
    +IndexPage in mcaptcha::pages::panel::sitekey::view - Rust

    Struct IndexPage

    Source
    struct IndexPage {
    +    duration: u32,
    +    name: String,
    +    key: String,
    +    levels: Vec<Level>,
         stats: CaptchaStats,
    -    publish_benchmarks: bool,
    -}

    Fields§

    §duration: u32§name: String§key: String§levels: Vec<Level>§stats: CaptchaStats§publish_benchmarks: bool

    Implementations§

    source§

    impl IndexPage

    source

    fn new( + publish_benchmarks: bool, +}

    Fields§

    §duration: u32§name: String§key: String§levels: Vec<Level>§stats: CaptchaStats§publish_benchmarks: bool

    Implementations§

    Source§

    impl IndexPage

    Source

    fn new( stats: CaptchaStats, config: Captcha, - levels: Vec<Level>, - key: String, - publish_benchmarks: bool -) -> Self

    Trait Implementations§

    source§

    impl Clone for IndexPage

    source§

    fn clone(&self) -> IndexPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + levels: Vec<Level>, + key: String, + publish_benchmarks: bool, +) -> Self

    Trait Implementations§

    Source§

    impl Clone for IndexPage

    Source§

    fn clone(&self) -> IndexPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ 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 f4704bc0..6c4381ad 100644 --- a/mcaptcha/pages/panel/sitekey/view/struct.view_sitekey.html +++ b/mcaptcha/pages/panel/sitekey/view/struct.view_sitekey.html @@ -1,19 +1,33 @@ -view_sitekey in mcaptcha::pages::panel::sitekey::view - Rust -
    pub struct view_sitekey;
    Expand description

    route handler that renders individual views for sitekeys

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for view_sitekey

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +view_sitekey in mcaptcha::pages::panel::sitekey::view - Rust

    Struct view_sitekey

    Source
    pub struct view_sitekey;
    Expand description

    route handler that renders individual views for sitekeys

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for view_sitekey

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/panel/struct.IndexPage.html b/mcaptcha/pages/panel/struct.IndexPage.html index b121f469..5deb90bc 100644 --- a/mcaptcha/pages/panel/struct.IndexPage.html +++ b/mcaptcha/pages/panel/struct.IndexPage.html @@ -1,21 +1,38 @@ -IndexPage in mcaptcha::pages::panel - Rust -

    Struct mcaptcha::pages::panel::IndexPage

    source ·
    pub struct IndexPage {
    -    sitekeys: Vec<Captcha>,
    -}

    Fields§

    §sitekeys: Vec<Captcha>

    Implementations§

    source§

    impl IndexPage

    source

    fn new(sitekeys: Vec<Captcha>) -> Self

    Trait Implementations§

    source§

    impl Clone for IndexPage

    source§

    fn clone(&self) -> IndexPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::pages::panel - Rust

    Struct IndexPage

    Source
    pub struct IndexPage {
    +    sitekeys: Vec<Captcha>,
    +}

    Fields§

    §sitekeys: Vec<Captcha>

    Implementations§

    Source§

    impl IndexPage

    Source

    fn new(sitekeys: Vec<Captcha>) -> Self

    Trait Implementations§

    Source§

    impl Clone for IndexPage

    Source§

    fn clone(&self) -> IndexPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/pages/panel/struct.panel.html b/mcaptcha/pages/panel/struct.panel.html index d5560e62..d9119d65 100644 --- a/mcaptcha/pages/panel/struct.panel.html +++ b/mcaptcha/pages/panel/struct.panel.html @@ -1,18 +1,32 @@ -panel in mcaptcha::pages::panel - Rust -

    Struct mcaptcha::pages::panel::panel

    source ·
    pub struct panel;

    Trait Implementations§

    source§

    impl HttpServiceFactory for panel

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for panel

    §

    impl Send for panel

    §

    impl Sync for panel

    §

    impl Unpin for panel

    §

    impl UnwindSafe for panel

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +panel in mcaptcha::pages::panel - Rust

    Struct panel

    Source
    pub struct panel;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for panel

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    §

    impl Freeze for panel

    §

    impl RefUnwindSafe for panel

    §

    impl Send for panel

    §

    impl Sync for panel

    §

    impl Unpin for panel

    §

    impl UnwindSafe for panel

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/constant.PAGE.html b/mcaptcha/pages/panel/utils/constant.PAGE.html index d41435ff..3e315031 100644 --- a/mcaptcha/pages/panel/utils/constant.PAGE.html +++ b/mcaptcha/pages/panel/utils/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::pages::panel::utils - Rust -

    Constant mcaptcha::pages::panel::utils::PAGE

    source ·
    const PAGE: &str = "Difficulty factor statistics";
    \ No newline at end of file +PAGE in mcaptcha::pages::panel::utils - Rust

    Constant PAGE

    Source
    const PAGE: &str = "Difficulty factor statistics";
    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/fn.services.html b/mcaptcha/pages/panel/utils/fn.services.html index 8dcaa032..2fabddf2 100644 --- a/mcaptcha/pages/panel/utils/fn.services.html +++ b/mcaptcha/pages/panel/utils/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::pages::panel::utils - Rust -

    Function mcaptcha::pages::panel::utils::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::pages::panel::utils - Rust

    Function services

    Source
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/index.html b/mcaptcha/pages/panel/utils/index.html index a328d1ab..ac26c0a3 100644 --- a/mcaptcha/pages/panel/utils/index.html +++ b/mcaptcha/pages/panel/utils/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::utils - Rust -
    \ No newline at end of file +mcaptcha::pages::panel::utils - Rust

    Module utils

    Source

    Modules§

    routes

    Structs§

    PercentilePage
    get_percentile
    post_percentile

    Constants§

    PAGE 🔒

    Functions§

    services
    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/routes/index.html b/mcaptcha/pages/panel/utils/routes/index.html index cc1fff7e..e107c4f0 100644 --- a/mcaptcha/pages/panel/utils/routes/index.html +++ b/mcaptcha/pages/panel/utils/routes/index.html @@ -1,2 +1 @@ -mcaptcha::pages::panel::utils::routes - Rust -

    Module mcaptcha::pages::panel::utils::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::pages::panel::utils::routes - Rust

    Module routes

    Source

    Structs§

    Utils
    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/routes/struct.Utils.html b/mcaptcha/pages/panel/utils/routes/struct.Utils.html index 3f1d5fd1..e0739e86 100644 --- a/mcaptcha/pages/panel/utils/routes/struct.Utils.html +++ b/mcaptcha/pages/panel/utils/routes/struct.Utils.html @@ -1,20 +1,34 @@ -Utils in mcaptcha::pages::panel::utils::routes - Rust -
    pub struct Utils {
    -    pub percentile: &'static str,
    -}

    Fields§

    §percentile: &'static str

    Implementations§

    source§

    impl Utils

    source

    pub const fn new() -> Self

    source

    pub const fn get_sitemap() -> [&'static str; 1]

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Utils

    §

    impl Send for Utils

    §

    impl Sync for Utils

    §

    impl Unpin for Utils

    §

    impl UnwindSafe for Utils

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Utils in mcaptcha::pages::panel::utils::routes - Rust

    Struct Utils

    Source
    pub struct Utils {
    +    pub percentile: &'static str,
    +}

    Fields§

    §percentile: &'static str

    Implementations§

    Source§

    impl Utils

    Source

    pub const fn new() -> Self

    Source

    pub const fn get_sitemap() -> [&'static str; 1]

    Auto Trait Implementations§

    §

    impl Freeze for Utils

    §

    impl RefUnwindSafe for Utils

    §

    impl Send for Utils

    §

    impl Sync for Utils

    §

    impl Unpin for Utils

    §

    impl UnwindSafe for Utils

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/struct.PercentilePage.html b/mcaptcha/pages/panel/utils/struct.PercentilePage.html index b4fec2dd..63cb1c42 100644 --- a/mcaptcha/pages/panel/utils/struct.PercentilePage.html +++ b/mcaptcha/pages/panel/utils/struct.PercentilePage.html @@ -1,23 +1,40 @@ -PercentilePage in mcaptcha::pages::panel::utils - Rust -
    pub struct PercentilePage {
    -    time: Option<u32>,
    -    percentile: Option<f64>,
    -    difficulty_factor: Option<u32>,
    -}

    Fields§

    §time: Option<u32>§percentile: Option<f64>§difficulty_factor: Option<u32>

    Trait Implementations§

    source§

    impl Clone for PercentilePage

    source§

    fn clone(&self) -> PercentilePage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl TemplateOnce for PercentilePage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for PercentilePage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +PercentilePage in mcaptcha::pages::panel::utils - Rust

    Struct PercentilePage

    Source
    pub struct PercentilePage {
    +    time: Option<u32>,
    +    percentile: Option<f64>,
    +    difficulty_factor: Option<u32>,
    +}

    Fields§

    §time: Option<u32>§percentile: Option<f64>§difficulty_factor: Option<u32>

    Trait Implementations§

    Source§

    impl Clone for PercentilePage

    Source§

    fn clone(&self) -> PercentilePage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl TemplateOnce for PercentilePage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for PercentilePage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/struct.get_percentile.html b/mcaptcha/pages/panel/utils/struct.get_percentile.html index 67313516..3b74c721 100644 --- a/mcaptcha/pages/panel/utils/struct.get_percentile.html +++ b/mcaptcha/pages/panel/utils/struct.get_percentile.html @@ -1,18 +1,32 @@ -get_percentile in mcaptcha::pages::panel::utils - Rust -
    pub struct get_percentile;

    Trait Implementations§

    source§

    impl HttpServiceFactory for get_percentile

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +get_percentile in mcaptcha::pages::panel::utils - Rust

    Struct get_percentile

    Source
    pub struct get_percentile;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for get_percentile

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/panel/utils/struct.post_percentile.html b/mcaptcha/pages/panel/utils/struct.post_percentile.html index a18c7298..dc0aac24 100644 --- a/mcaptcha/pages/panel/utils/struct.post_percentile.html +++ b/mcaptcha/pages/panel/utils/struct.post_percentile.html @@ -1,18 +1,32 @@ -post_percentile in mcaptcha::pages::panel::utils - Rust -
    pub struct post_percentile;

    Trait Implementations§

    source§

    impl HttpServiceFactory for post_percentile

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +post_percentile in mcaptcha::pages::panel::utils - Rust

    Struct post_percentile

    Source
    pub struct post_percentile;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for post_percentile

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/routes/constant.ROUTES.html b/mcaptcha/pages/routes/constant.ROUTES.html index ecfeb003..2ee83a95 100644 --- a/mcaptcha/pages/routes/constant.ROUTES.html +++ b/mcaptcha/pages/routes/constant.ROUTES.html @@ -1,2 +1 @@ -ROUTES in mcaptcha::pages::routes - Rust -

    Constant mcaptcha::pages::routes::ROUTES

    source ·
    pub const ROUTES: Routes;
    \ No newline at end of file +ROUTES in mcaptcha::pages::routes - Rust

    Constant 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 2fd2329b..940b074f 100644 --- a/mcaptcha/pages/routes/index.html +++ b/mcaptcha/pages/routes/index.html @@ -1,2 +1 @@ -mcaptcha::pages::routes - Rust -

    Module mcaptcha::pages::routes

    source ·

    Structs§

    Constants§

    \ No newline at end of file +mcaptcha::pages::routes - Rust

    Module routes

    Source

    Structs§

    Routes

    Constants§

    ROUTES
    \ No newline at end of file diff --git a/mcaptcha/pages/routes/struct.Routes.html b/mcaptcha/pages/routes/struct.Routes.html index 8ed7ff06..12af0b46 100644 --- a/mcaptcha/pages/routes/struct.Routes.html +++ b/mcaptcha/pages/routes/struct.Routes.html @@ -1,29 +1,43 @@ -Routes in mcaptcha::pages::routes - Rust -

    Struct mcaptcha::pages::routes::Routes

    source ·
    pub struct Routes {
    -    pub home: &'static str,
    +Routes in mcaptcha::pages::routes - Rust

    Struct Routes

    Source
    pub struct Routes {
    +    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 str§auth: Auth§panel: Panel§errors: Errors§about: &'static str§sitemap: &'static str§thanks: &'static str§donate: &'static str§security: &'static str§privacy: &'static str

    Implementations§

    source§

    impl Routes

    source

    const fn new() -> Routes

    source

    pub const fn get_sitemap() -> [&'static str; 7]

    Trait Implementations§

    source§

    impl GetLoginRoute for Routes

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + 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 str§auth: Auth§panel: Panel§errors: Errors§about: &'static str§sitemap: &'static str§thanks: &'static str§donate: &'static str§security: &'static str§privacy: &'static str

    Implementations§

    Source§

    impl Routes

    Source

    const fn new() -> Routes

    Source

    pub const fn get_sitemap() -> [&'static str; 7]

    Trait Implementations§

    Source§

    impl GetLoginRoute for Routes

    Auto Trait Implementations§

    §

    impl Freeze for Routes

    §

    impl RefUnwindSafe for Routes

    §

    impl Send for Routes

    §

    impl Sync for Routes

    §

    impl Unpin for Routes

    §

    impl UnwindSafe for Routes

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/sitemap/index.html b/mcaptcha/pages/sitemap/index.html index 7e5bf69f..ba435787 100644 --- a/mcaptcha/pages/sitemap/index.html +++ b/mcaptcha/pages/sitemap/index.html @@ -1,2 +1 @@ -mcaptcha::pages::sitemap - Rust -

    Module mcaptcha::pages::sitemap

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::pages::sitemap - Rust

    Module sitemap

    Source

    Structs§

    INDEX 🔒
    IndexPage 🔒
    sitemap
    \ No newline at end of file diff --git a/mcaptcha/pages/sitemap/struct.INDEX.html b/mcaptcha/pages/sitemap/struct.INDEX.html index 7568b06e..7edc6db5 100644 --- a/mcaptcha/pages/sitemap/struct.INDEX.html +++ b/mcaptcha/pages/sitemap/struct.INDEX.html @@ -1,23 +1,22 @@ -INDEX in mcaptcha::pages::sitemap - Rust -

    Struct mcaptcha::pages::sitemap::INDEX

    source ·
    struct INDEX {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +INDEX in mcaptcha::pages::sitemap - Rust

    Struct INDEX

    Source
    struct INDEX {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for INDEX

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for INDEX

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for INDEX

    §

    impl Send for INDEX

    §

    impl Sync for INDEX

    §

    impl Unpin for INDEX

    §

    impl UnwindSafe for INDEX

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for INDEX

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for INDEX

    Auto Trait Implementations§

    §

    impl Freeze for INDEX

    §

    impl RefUnwindSafe for INDEX

    §

    impl Send for INDEX

    §

    impl Sync for INDEX

    §

    impl Unpin for INDEX

    §

    impl UnwindSafe for INDEX

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/pages/sitemap/struct.IndexPage.html b/mcaptcha/pages/sitemap/struct.IndexPage.html index 6457fea7..e11266ff 100644 --- a/mcaptcha/pages/sitemap/struct.IndexPage.html +++ b/mcaptcha/pages/sitemap/struct.IndexPage.html @@ -1,22 +1,39 @@ -IndexPage in mcaptcha::pages::sitemap - Rust -
    struct IndexPage {
    -    urls: [&'static str; 7],
    -    domain: &'static str,
    -}

    Fields§

    §urls: [&'static str; 7]§domain: &'static str

    Trait Implementations§

    source§

    impl Clone for IndexPage

    source§

    fn clone(&self) -> IndexPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Default for IndexPage

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::pages::sitemap - Rust

    Struct IndexPage

    Source
    struct IndexPage {
    +    urls: [&'static str; 7],
    +    domain: &'static str,
    +}

    Fields§

    §urls: [&'static str; 7]§domain: &'static str

    Trait Implementations§

    Source§

    impl Clone for IndexPage

    Source§

    fn clone(&self) -> IndexPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Default for IndexPage

    Source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/pages/sitemap/struct.sitemap.html b/mcaptcha/pages/sitemap/struct.sitemap.html index 24cbc3b7..1efb30ce 100644 --- a/mcaptcha/pages/sitemap/struct.sitemap.html +++ b/mcaptcha/pages/sitemap/struct.sitemap.html @@ -1,18 +1,32 @@ -sitemap in mcaptcha::pages::sitemap - Rust -

    Struct mcaptcha::pages::sitemap::sitemap

    source ·
    pub struct sitemap;

    Trait Implementations§

    source§

    impl HttpServiceFactory for sitemap

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +sitemap in mcaptcha::pages::sitemap - Rust

    Struct sitemap

    Source
    pub struct sitemap;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for sitemap

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/routes/fn.services.html b/mcaptcha/routes/fn.services.html index 87037813..7586c498 100644 --- a/mcaptcha/routes/fn.services.html +++ b/mcaptcha/routes/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::routes - Rust -

    Function mcaptcha::routes::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::routes - Rust

    Function 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 459edd61..12e0900e 100644 --- a/mcaptcha/routes/index.html +++ b/mcaptcha/routes/index.html @@ -1,2 +1 @@ -mcaptcha::routes - Rust -

    Module mcaptcha::routes

    source ·

    Functions§

    \ No newline at end of file +mcaptcha::routes - Rust

    Module routes

    Source

    Functions§

    services
    \ No newline at end of file diff --git a/mcaptcha/settings/constant.DEPRECATED_ENV_VARS.html b/mcaptcha/settings/constant.DEPRECATED_ENV_VARS.html index a4a57327..d93723b4 100644 --- a/mcaptcha/settings/constant.DEPRECATED_ENV_VARS.html +++ b/mcaptcha/settings/constant.DEPRECATED_ENV_VARS.html @@ -1,2 +1 @@ -DEPRECATED_ENV_VARS in mcaptcha::settings - Rust -
    const DEPRECATED_ENV_VARS: [(&str, &str); 23];
    \ No newline at end of file +DEPRECATED_ENV_VARS in mcaptcha::settings - Rust

    Constant DEPRECATED_ENV_VARS

    Source
    const DEPRECATED_ENV_VARS: [(&str, &str); 23];
    \ No newline at end of file diff --git a/mcaptcha/settings/constant.ENV_VAR_CONFIG.html b/mcaptcha/settings/constant.ENV_VAR_CONFIG.html index 7d23f9c8..0c200384 100644 --- a/mcaptcha/settings/constant.ENV_VAR_CONFIG.html +++ b/mcaptcha/settings/constant.ENV_VAR_CONFIG.html @@ -1,2 +1 @@ -ENV_VAR_CONFIG in mcaptcha::settings - Rust -
    const ENV_VAR_CONFIG: [(&str, &str); 32];
    \ No newline at end of file +ENV_VAR_CONFIG in mcaptcha::settings - Rust

    Constant ENV_VAR_CONFIG

    Source
    const ENV_VAR_CONFIG: [(&str, &str); 32];
    \ No newline at end of file diff --git a/mcaptcha/settings/enum.DBType.html b/mcaptcha/settings/enum.DBType.html index 33970791..4e4595f1 100644 --- a/mcaptcha/settings/enum.DBType.html +++ b/mcaptcha/settings/enum.DBType.html @@ -1,34 +1,55 @@ -DBType in mcaptcha::settings - Rust -
    pub enum DBType {
    +DBType in mcaptcha::settings - Rust

    Enum DBType

    Source
    pub enum DBType {
         Postgres,
         Maria,
    -}

    Variants§

    §

    Postgres

    §

    Maria

    Implementations§

    source§

    impl DBType

    source

    fn from_url(url: &Url) -> Result<Self, ConfigError>

    Trait Implementations§

    source§

    impl Clone for DBType

    source§

    fn clone(&self) -> DBType

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for DBType

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for DBType

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for DBType

    source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for DBType

    source§

    fn eq(&self, other: &DBType) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for DBType

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for DBType

    source§

    impl StructuralPartialEq for DBType

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Variants§

    §

    Postgres

    §

    Maria

    Implementations§

    Source§

    impl DBType

    Source

    fn from_url(url: &Url) -> Result<Self, ConfigError>

    Trait Implementations§

    Source§

    impl Clone for DBType

    Source§

    fn clone(&self) -> DBType

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for DBType

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for DBType

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl Display for DBType

    Source§

    fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl PartialEq for DBType

    Source§

    fn eq(&self, other: &DBType) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for DBType

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl Eq for DBType

    Source§

    impl StructuralPartialEq for DBType

    Auto Trait Implementations§

    §

    impl Freeze for DBType

    §

    impl RefUnwindSafe for DBType

    §

    impl Send for DBType

    §

    impl Sync for DBType

    §

    impl Unpin for DBType

    §

    impl UnwindSafe for DBType

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    Source§

    fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToStringFallible for T
    where + T: Display,

    §

    fn try_to_string(&self) -> Result<String, TryReserveError>

    ToString::to_string, but without panic on OOM.

    +
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> ValidateIp for T
    where + T: ToString,

    §

    fn validate_ipv4(&self) -> bool

    Validates whether the given string is an IP V4
    §

    fn validate_ipv6(&self) -> bool

    Validates whether the given string is an IP V6
    §

    fn validate_ip(&self) -> bool

    Validates whether the given string is an IP
    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/index.html b/mcaptcha/settings/index.html index 50eae50c..41716fe7 100644 --- a/mcaptcha/settings/index.html +++ b/mcaptcha/settings/index.html @@ -1,2 +1 @@ -mcaptcha::settings - Rust -
    \ No newline at end of file +mcaptcha::settings - Rust
    \ No newline at end of file diff --git a/mcaptcha/settings/struct.Captcha.html b/mcaptcha/settings/struct.Captcha.html index 5df71cf9..38ce278c 100644 --- a/mcaptcha/settings/struct.Captcha.html +++ b/mcaptcha/settings/struct.Captcha.html @@ -1,36 +1,50 @@ -Captcha in mcaptcha::settings - Rust -

    Struct mcaptcha::settings::Captcha

    source ·
    pub struct Captcha {
    -    pub salt: String,
    -    pub gc: u64,
    -    pub runners: Option<usize>,
    -    pub queue_length: usize,
    -    pub enable_stats: bool,
    +Captcha in mcaptcha::settings - Rust

    Struct Captcha

    Source
    pub struct Captcha {
    +    pub salt: String,
    +    pub gc: u64,
    +    pub runners: Option<usize>,
    +    pub queue_length: usize,
    +    pub enable_stats: bool,
         pub default_difficulty_strategy: DefaultDifficultyStrategy,
    -}

    Fields§

    §salt: String§gc: u64§runners: Option<usize>§queue_length: usize§enable_stats: bool§default_difficulty_strategy: DefaultDifficultyStrategy

    Trait Implementations§

    source§

    impl Clone for Captcha

    source§

    fn clone(&self) -> Captcha

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Captcha

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Captcha

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Captcha

    source§

    fn eq(&self, other: &Captcha) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Captcha

    source§

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §salt: String§gc: u64§runners: Option<usize>§queue_length: usize§enable_stats: bool§default_difficulty_strategy: DefaultDifficultyStrategy

    Trait Implementations§

    Source§

    impl Clone for Captcha

    Source§

    fn clone(&self) -> Captcha

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Captcha

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Captcha

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Captcha

    Source§

    fn eq(&self, other: &Captcha) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Captcha

    Source§

    impl StructuralPartialEq for Captcha

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/struct.Database.html b/mcaptcha/settings/struct.Database.html index ffeac73b..3f89ccfa 100644 --- a/mcaptcha/settings/struct.Database.html +++ b/mcaptcha/settings/struct.Database.html @@ -1,33 +1,47 @@ -Database in mcaptcha::settings - Rust -

    Struct mcaptcha::settings::Database

    source ·
    pub struct Database {
    -    pub url: String,
    -    pub pool: u32,
    +Database in mcaptcha::settings - Rust

    Struct Database

    Source
    pub struct Database {
    +    pub url: String,
    +    pub pool: u32,
         pub database_type: DBType,
    -}

    Fields§

    §url: String§pool: u32§database_type: DBType

    Trait Implementations§

    source§

    impl Clone for Database

    source§

    fn clone(&self) -> Database

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Database

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Database

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Database

    source§

    fn eq(&self, other: &Database) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Database

    source§

    impl StructuralPartialEq for Database

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §url: String§pool: u32§database_type: DBType

    Trait Implementations§

    Source§

    impl Clone for Database

    Source§

    fn clone(&self) -> Database

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Database

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Database

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Database

    Source§

    fn eq(&self, other: &Database) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Database

    Source§

    impl StructuralPartialEq for Database

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/struct.DefaultDifficultyStrategy.html b/mcaptcha/settings/struct.DefaultDifficultyStrategy.html index 94b988c0..c57d4c15 100644 --- a/mcaptcha/settings/struct.DefaultDifficultyStrategy.html +++ b/mcaptcha/settings/struct.DefaultDifficultyStrategy.html @@ -1,37 +1,51 @@ -DefaultDifficultyStrategy in mcaptcha::settings - Rust -
    pub struct DefaultDifficultyStrategy {
    -    pub avg_traffic_difficulty: u32,
    -    pub avg_traffic_time: Option<u32>,
    -    pub peak_sustainable_traffic_difficulty: u32,
    -    pub peak_sustainable_traffic_time: Option<u32>,
    -    pub broke_my_site_traffic_time: Option<u32>,
    -    pub broke_my_site_traffic_difficulty: u32,
    -    pub duration: u32,
    -}

    Fields§

    §avg_traffic_difficulty: u32§avg_traffic_time: Option<u32>§peak_sustainable_traffic_difficulty: u32§peak_sustainable_traffic_time: Option<u32>§broke_my_site_traffic_time: Option<u32>§broke_my_site_traffic_difficulty: u32§duration: u32

    Trait Implementations§

    source§

    impl Clone for DefaultDifficultyStrategy

    source§

    fn clone(&self) -> DefaultDifficultyStrategy

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for DefaultDifficultyStrategy

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for DefaultDifficultyStrategy

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for DefaultDifficultyStrategy

    source§

    fn eq(&self, other: &DefaultDifficultyStrategy) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for DefaultDifficultyStrategy

    source§

    impl StructuralPartialEq for DefaultDifficultyStrategy

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +DefaultDifficultyStrategy in mcaptcha::settings - Rust

    Struct DefaultDifficultyStrategy

    Source
    pub struct DefaultDifficultyStrategy {
    +    pub avg_traffic_difficulty: u32,
    +    pub avg_traffic_time: Option<u32>,
    +    pub peak_sustainable_traffic_difficulty: u32,
    +    pub peak_sustainable_traffic_time: Option<u32>,
    +    pub broke_my_site_traffic_time: Option<u32>,
    +    pub broke_my_site_traffic_difficulty: u32,
    +    pub duration: u32,
    +}

    Fields§

    §avg_traffic_difficulty: u32§avg_traffic_time: Option<u32>§peak_sustainable_traffic_difficulty: u32§peak_sustainable_traffic_time: Option<u32>§broke_my_site_traffic_time: Option<u32>§broke_my_site_traffic_difficulty: u32§duration: u32

    Trait Implementations§

    Source§

    impl Clone for DefaultDifficultyStrategy

    Source§

    fn clone(&self) -> DefaultDifficultyStrategy

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for DefaultDifficultyStrategy

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for DefaultDifficultyStrategy

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for DefaultDifficultyStrategy

    Source§

    fn eq(&self, other: &DefaultDifficultyStrategy) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for DefaultDifficultyStrategy

    Source§

    impl StructuralPartialEq for DefaultDifficultyStrategy

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/struct.Redis.html b/mcaptcha/settings/struct.Redis.html index 82cc5c70..d7aea7b1 100644 --- a/mcaptcha/settings/struct.Redis.html +++ b/mcaptcha/settings/struct.Redis.html @@ -1,32 +1,46 @@ -Redis in mcaptcha::settings - Rust -

    Struct mcaptcha::settings::Redis

    source ·
    pub struct Redis {
    -    pub url: String,
    -    pub pool: u32,
    -}

    Fields§

    §url: String§pool: u32

    Trait Implementations§

    source§

    impl Clone for Redis

    source§

    fn clone(&self) -> Redis

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Redis

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Redis

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Redis

    source§

    fn eq(&self, other: &Redis) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Redis

    source§

    impl StructuralPartialEq for Redis

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Redis

    §

    impl Send for Redis

    §

    impl Sync for Redis

    §

    impl Unpin for Redis

    §

    impl UnwindSafe for Redis

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Redis in mcaptcha::settings - Rust

    Struct Redis

    Source
    pub struct Redis {
    +    pub url: String,
    +    pub pool: u32,
    +}

    Fields§

    §url: String§pool: u32

    Trait Implementations§

    Source§

    impl Clone for Redis

    Source§

    fn clone(&self) -> Redis

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Redis

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Redis

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Redis

    Source§

    fn eq(&self, other: &Redis) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Redis

    Source§

    impl StructuralPartialEq for Redis

    Auto Trait Implementations§

    §

    impl Freeze for Redis

    §

    impl RefUnwindSafe for Redis

    §

    impl Send for Redis

    §

    impl Sync for Redis

    §

    impl Unpin for Redis

    §

    impl UnwindSafe for Redis

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/struct.Server.html b/mcaptcha/settings/struct.Server.html index 4870b00a..32be234c 100644 --- a/mcaptcha/settings/struct.Server.html +++ b/mcaptcha/settings/struct.Server.html @@ -1,36 +1,50 @@ -Server in mcaptcha::settings - Rust -

    Struct mcaptcha::settings::Server

    source ·
    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: u32§domain: String§cookie_secret: String§ip: String§url_prefix: Option<String>§proxy_has_tls: bool

    Implementations§

    source§

    impl Server

    source

    pub fn get_ip(&self) -> String

    Trait Implementations§

    source§

    impl Clone for Server

    source§

    fn clone(&self) -> Server

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Server

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Server

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Server

    source§

    fn eq(&self, other: &Server) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Server

    source§

    impl StructuralPartialEq for Server

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Server in mcaptcha::settings - Rust

    Struct Server

    Source
    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: u32§domain: String§cookie_secret: String§ip: String§url_prefix: Option<String>§proxy_has_tls: bool

    Implementations§

    Source§

    impl Server

    Source

    pub fn get_ip(&self) -> String

    Trait Implementations§

    Source§

    impl Clone for Server

    Source§

    fn clone(&self) -> Server

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Server

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Server

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Server

    Source§

    fn eq(&self, other: &Server) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Server

    Source§

    impl StructuralPartialEq for Server

    Auto Trait Implementations§

    §

    impl Freeze for Server

    §

    impl RefUnwindSafe for Server

    §

    impl Send for Server

    §

    impl Sync for Server

    §

    impl Unpin for Server

    §

    impl UnwindSafe for Server

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/struct.Settings.html b/mcaptcha/settings/struct.Settings.html index 7557f9e3..4a256869 100644 --- a/mcaptcha/settings/struct.Settings.html +++ b/mcaptcha/settings/struct.Settings.html @@ -1,41 +1,55 @@ -Settings in mcaptcha::settings - Rust -

    Struct mcaptcha::settings::Settings

    source ·
    pub struct Settings {
    -    pub debug: bool,
    -    pub commercial: bool,
    -    pub source_code: String,
    -    pub allow_registration: bool,
    -    pub allow_demo: bool,
    +Settings in mcaptcha::settings - Rust

    Struct Settings

    Source
    pub struct Settings {
    +    pub debug: bool,
    +    pub commercial: bool,
    +    pub source_code: String,
    +    pub allow_registration: bool,
    +    pub allow_demo: bool,
         pub database: Database,
    -    pub survey: Option<Survey>,
    -    pub redis: Option<Redis>,
    +    pub survey: Option<Survey>,
    +    pub redis: Option<Redis>,
         pub server: Server,
         pub captcha: Captcha,
    -    pub smtp: Option<Smtp>,
    -}

    Fields§

    §debug: bool§commercial: bool§source_code: String§allow_registration: bool§allow_demo: bool§database: Database§survey: Option<Survey>§redis: Option<Redis>§server: Server§captcha: Captcha§smtp: Option<Smtp>

    Implementations§

    source§

    impl Settings

    source

    pub fn new() -> Result<Self, ConfigError>

    source

    fn check_easy_captcha_config(&self)

    source

    fn env_override(s: ConfigBuilder<DefaultState>) -> ConfigBuilder<DefaultState>

    source

    fn set_database_type(&mut self)

    source

    fn check_url(&self)

    Trait Implementations§

    source§

    impl Clone for Settings

    source§

    fn clone(&self) -> Settings

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Settings

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Settings

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Settings

    source§

    fn eq(&self, other: &Settings) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Settings

    source§

    impl StructuralPartialEq for Settings

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + pub smtp: Option<Smtp>, +}

    Fields§

    §debug: bool§commercial: bool§source_code: String§allow_registration: bool§allow_demo: bool§database: Database§survey: Option<Survey>§redis: Option<Redis>§server: Server§captcha: Captcha§smtp: Option<Smtp>

    Implementations§

    Source§

    impl Settings

    Source

    pub fn new() -> Result<Self, ConfigError>

    Source

    fn check_easy_captcha_config(&self)

    Source

    fn env_override(s: ConfigBuilder<DefaultState>) -> ConfigBuilder<DefaultState>

    Source

    fn set_database_type(&mut self)

    Source

    fn check_url(&self)

    Trait Implementations§

    Source§

    impl Clone for Settings

    Source§

    fn clone(&self) -> Settings

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Settings

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Settings

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Settings

    Source§

    fn eq(&self, other: &Settings) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Settings

    Source§

    impl StructuralPartialEq for Settings

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/struct.Smtp.html b/mcaptcha/settings/struct.Smtp.html index 92270cf6..8a616885 100644 --- a/mcaptcha/settings/struct.Smtp.html +++ b/mcaptcha/settings/struct.Smtp.html @@ -1,36 +1,50 @@ -Smtp in mcaptcha::settings - Rust -

    Struct mcaptcha::settings::Smtp

    source ·
    pub struct Smtp {
    -    pub from: String,
    -    pub reply: String,
    -    pub url: String,
    -    pub username: String,
    -    pub password: String,
    -    pub port: u16,
    -}

    Fields§

    §from: String§reply: String§url: String§username: String§password: String§port: u16

    Trait Implementations§

    source§

    impl Clone for Smtp

    source§

    fn clone(&self) -> Smtp

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Smtp

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Smtp

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Smtp

    source§

    fn eq(&self, other: &Smtp) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Smtp

    source§

    impl StructuralPartialEq for Smtp

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Smtp

    §

    impl Send for Smtp

    §

    impl Sync for Smtp

    §

    impl Unpin for Smtp

    §

    impl UnwindSafe for Smtp

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Smtp in mcaptcha::settings - Rust

    Struct Smtp

    Source
    pub struct Smtp {
    +    pub from: String,
    +    pub reply: String,
    +    pub url: String,
    +    pub username: String,
    +    pub password: String,
    +    pub port: u16,
    +}

    Fields§

    §from: String§reply: String§url: String§username: String§password: String§port: u16

    Trait Implementations§

    Source§

    impl Clone for Smtp

    Source§

    fn clone(&self) -> Smtp

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Smtp

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Smtp

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Smtp

    Source§

    fn eq(&self, other: &Smtp) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Smtp

    Source§

    impl StructuralPartialEq for Smtp

    Auto Trait Implementations§

    §

    impl Freeze for Smtp

    §

    impl RefUnwindSafe for Smtp

    §

    impl Send for Smtp

    §

    impl Sync for Smtp

    §

    impl Unpin for Smtp

    §

    impl UnwindSafe for Smtp

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/settings/struct.Survey.html b/mcaptcha/settings/struct.Survey.html index 306ef1ff..d09e48b6 100644 --- a/mcaptcha/settings/struct.Survey.html +++ b/mcaptcha/settings/struct.Survey.html @@ -1,33 +1,47 @@ -Survey in mcaptcha::settings - Rust -

    Struct mcaptcha::settings::Survey

    source ·
    pub struct Survey {
    -    pub nodes: Vec<Url>,
    -    pub rate_limit: u64,
    -    pub instance_root_url: Url,
    -}

    Fields§

    §nodes: Vec<Url>§rate_limit: u64§instance_root_url: Url

    Trait Implementations§

    source§

    impl Clone for Survey

    source§

    fn clone(&self) -> Survey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Survey

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Survey

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Survey

    source§

    fn eq(&self, other: &Survey) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Survey

    source§

    impl StructuralPartialEq for Survey

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Survey in mcaptcha::settings - Rust

    Struct Survey

    Source
    pub struct Survey {
    +    pub nodes: Vec<Url>,
    +    pub rate_limit: u64,
    +    pub instance_root_url: Url,
    +}

    Fields§

    §nodes: Vec<Url>§rate_limit: u64§instance_root_url: Url

    Trait Implementations§

    Source§

    impl Clone for Survey

    Source§

    fn clone(&self) -> Survey

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Survey

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Survey

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Survey

    Source§

    fn eq(&self, other: &Survey) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Survey

    Source§

    impl StructuralPartialEq for Survey

    Auto Trait Implementations§

    §

    impl Freeze for Survey

    §

    impl RefUnwindSafe for Survey

    §

    impl Send for Survey

    §

    impl Sync for Survey

    §

    impl Unpin for Survey

    §

    impl UnwindSafe for Survey

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/static_assets/filemap/index.html b/mcaptcha/static_assets/filemap/index.html index 32f34f7e..8faa75c6 100644 --- a/mcaptcha/static_assets/filemap/index.html +++ b/mcaptcha/static_assets/filemap/index.html @@ -1,2 +1 @@ -mcaptcha::static_assets::filemap - Rust -
    \ No newline at end of file +mcaptcha::static_assets::filemap - Rust

    Module filemap

    Source

    Structs§

    FileMap
    \ 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 4c1621df..8aadabba 100644 --- a/mcaptcha/static_assets/filemap/struct.FileMap.html +++ b/mcaptcha/static_assets/filemap/struct.FileMap.html @@ -1,20 +1,34 @@ -FileMap in mcaptcha::static_assets::filemap - Rust -
    pub struct FileMap {
    +FileMap in mcaptcha::static_assets::filemap - Rust

    Struct FileMap

    Source
    pub struct FileMap {
         pub files: Files,
    -}

    Fields§

    §files: Files

    Implementations§

    source§

    impl FileMap

    source

    pub fn new() -> Self

    source

    pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str>

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +}

    Fields§

    §files: Files

    Implementations§

    Source§

    impl FileMap

    Source

    pub fn new() -> Self

    Source

    pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str>

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/static_assets/fn.services.html b/mcaptcha/static_assets/fn.services.html index 15255ba9..af7ddd08 100644 --- a/mcaptcha/static_assets/fn.services.html +++ b/mcaptcha/static_assets/fn.services.html @@ -1,2 +1 @@ -services in mcaptcha::static_assets - Rust -
    pub fn services(cfg: &mut ServiceConfig)
    \ No newline at end of file +services in mcaptcha::static_assets - Rust

    Function 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 c4b753cf..91a25419 100644 --- a/mcaptcha/static_assets/index.html +++ b/mcaptcha/static_assets/index.html @@ -1,2 +1 @@ -mcaptcha::static_assets - Rust -

    Module mcaptcha::static_assets

    source ·

    Re-exports§

    Modules§

    Functions§

    \ No newline at end of file +mcaptcha::static_assets - Rust

    Module static_assets

    Source

    Re-exports§

    pub use filemap::FileMap;

    Modules§

    filemap
    static_files

    Functions§

    services
    \ 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 1aff5b22..2933f7ea 100644 --- a/mcaptcha/static_assets/static_files/assets/index.html +++ b/mcaptcha/static_assets/static_files/assets/index.html @@ -1,2 +1 @@ -mcaptcha::static_assets::static_files::assets - Rust -
    \ No newline at end of file +mcaptcha::static_assets::static_files::assets - Rust
    \ 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 6b1fb5b8..88803d73 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.BAR_CHART.html +++ b/mcaptcha/static_assets/static_files/assets/struct.BAR_CHART.html @@ -1,20 +1,36 @@ -BAR_CHART in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct BAR_CHART {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for BAR_CHART

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for BAR_CHART

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +BAR_CHART in mcaptcha::static_assets::static_files::assets - Rust

    Struct BAR_CHART

    Source
    pub struct BAR_CHART {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for BAR_CHART

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for BAR_CHART

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 b8bbbe81..102a41a0 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.CREDIT_CARD.html +++ b/mcaptcha/static_assets/static_files/assets/struct.CREDIT_CARD.html @@ -1,20 +1,36 @@ -CREDIT_CARD in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct CREDIT_CARD {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for CREDIT_CARD

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for CREDIT_CARD

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +CREDIT_CARD in mcaptcha::static_assets::static_files::assets - Rust

    Struct CREDIT_CARD

    Source
    pub struct CREDIT_CARD {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for CREDIT_CARD

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for CREDIT_CARD

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 a2cc014d..d1f073bb 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.DOCS_ICON.html +++ b/mcaptcha/static_assets/static_files/assets/struct.DOCS_ICON.html @@ -1,20 +1,36 @@ -DOCS_ICON in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct DOCS_ICON {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for DOCS_ICON

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for DOCS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +DOCS_ICON in mcaptcha::static_assets::static_files::assets - Rust

    Struct DOCS_ICON

    Source
    pub struct DOCS_ICON {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for DOCS_ICON

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for DOCS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 10ce632a..77cd713e 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.GITHUB.html +++ b/mcaptcha/static_assets/static_files/assets/struct.GITHUB.html @@ -1,20 +1,36 @@ -GITHUB in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct GITHUB {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for GITHUB

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for GITHUB

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +GITHUB in mcaptcha::static_assets::static_files::assets - Rust

    Struct GITHUB

    Source
    pub struct GITHUB {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for GITHUB

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for GITHUB

    Auto Trait Implementations§

    §

    impl Freeze for GITHUB

    §

    impl RefUnwindSafe for GITHUB

    §

    impl Send for GITHUB

    §

    impl Sync for GITHUB

    §

    impl Unpin for GITHUB

    §

    impl UnwindSafe for GITHUB

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 1b8b3a52..e293b390 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.HELP_CIRCLE.html +++ b/mcaptcha/static_assets/static_files/assets/struct.HELP_CIRCLE.html @@ -1,20 +1,36 @@ -HELP_CIRCLE in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct HELP_CIRCLE {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for HELP_CIRCLE

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for HELP_CIRCLE

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +HELP_CIRCLE in mcaptcha::static_assets::static_files::assets - Rust

    Struct HELP_CIRCLE

    Source
    pub struct HELP_CIRCLE {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for HELP_CIRCLE

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for HELP_CIRCLE

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 71c981cd..9c44a1b5 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.HOME.html +++ b/mcaptcha/static_assets/static_files/assets/struct.HOME.html @@ -1,20 +1,36 @@ -HOME in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct HOME {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for HOME

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for HOME

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for HOME

    §

    impl Send for HOME

    §

    impl Sync for HOME

    §

    impl Unpin for HOME

    §

    impl UnwindSafe for HOME

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +HOME in mcaptcha::static_assets::static_files::assets - Rust

    Struct HOME

    Source
    pub struct HOME {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for HOME

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for HOME

    Auto Trait Implementations§

    §

    impl Freeze for HOME

    §

    impl RefUnwindSafe for HOME

    §

    impl Send for HOME

    §

    impl Sync for HOME

    §

    impl Unpin for HOME

    §

    impl UnwindSafe for HOME

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 55a3103c..8f6ce6e5 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.KEY.html +++ b/mcaptcha/static_assets/static_files/assets/struct.KEY.html @@ -1,20 +1,36 @@ -KEY in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct KEY {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for KEY

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for KEY

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for KEY

    §

    impl Send for KEY

    §

    impl Sync for KEY

    §

    impl Unpin for KEY

    §

    impl UnwindSafe for KEY

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +KEY in mcaptcha::static_assets::static_files::assets - Rust

    Struct KEY

    Source
    pub struct KEY {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for KEY

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for KEY

    Auto Trait Implementations§

    §

    impl Freeze for KEY

    §

    impl RefUnwindSafe for KEY

    §

    impl Send for KEY

    §

    impl Sync for KEY

    §

    impl Unpin for KEY

    §

    impl UnwindSafe for KEY

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 86b109fd..c2e4f7b0 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 @@ -1,20 +1,36 @@ -MCAPTCHA_TRANS_ICON in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct MCAPTCHA_TRANS_ICON {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for MCAPTCHA_TRANS_ICON

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for MCAPTCHA_TRANS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +MCAPTCHA_TRANS_ICON in mcaptcha::static_assets::static_files::assets - Rust

    Struct MCAPTCHA_TRANS_ICON

    Source
    pub struct MCAPTCHA_TRANS_ICON {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for MCAPTCHA_TRANS_ICON

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for MCAPTCHA_TRANS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 c420cab7..515a46c8 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.MESSAGE.html +++ b/mcaptcha/static_assets/static_files/assets/struct.MESSAGE.html @@ -1,20 +1,36 @@ -MESSAGE in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct MESSAGE {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for MESSAGE

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for MESSAGE

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +MESSAGE in mcaptcha::static_assets::static_files::assets - Rust

    Struct MESSAGE

    Source
    pub struct MESSAGE {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for MESSAGE

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for MESSAGE

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 b22a052a..337b092c 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.SETTINGS_ICON.html +++ b/mcaptcha/static_assets/static_files/assets/struct.SETTINGS_ICON.html @@ -1,20 +1,36 @@ -SETTINGS_ICON in mcaptcha::static_assets::static_files::assets - Rust -
    pub struct SETTINGS_ICON {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for SETTINGS_ICON

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for SETTINGS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +SETTINGS_ICON in mcaptcha::static_assets::static_files::assets - Rust

    Struct SETTINGS_ICON

    Source
    pub struct SETTINGS_ICON {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for SETTINGS_ICON

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for SETTINGS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 bad23a29..45cf0960 100644 --- a/mcaptcha/static_assets/static_files/assets/type.Img.html +++ b/mcaptcha/static_assets/static_files/assets/type.Img.html @@ -1,2 +1 @@ -Img in mcaptcha::static_assets::static_files::assets - Rust -
    type Img = (&'static str, &'static str);
    \ No newline at end of file +Img in mcaptcha::static_assets::static_files::assets - Rust

    Type Alias 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 a5dd0ddf..d6bfb019 100644 --- a/mcaptcha/static_assets/static_files/fn.handle_assets.html +++ b/mcaptcha/static_assets/static_files/fn.handle_assets.html @@ -1,2 +1 @@ -handle_assets in mcaptcha::static_assets::static_files - Rust -
    fn handle_assets(path: &str) -> HttpResponse
    \ No newline at end of file +handle_assets in mcaptcha::static_assets::static_files - Rust

    Function 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 065fc611..a20d0a63 100644 --- a/mcaptcha/static_assets/static_files/fn.handle_favicons.html +++ b/mcaptcha/static_assets/static_files/fn.handle_favicons.html @@ -1,2 +1 @@ -handle_favicons in mcaptcha::static_assets::static_files - Rust -
    fn handle_favicons(path: &str) -> HttpResponse
    \ No newline at end of file +handle_favicons in mcaptcha::static_assets::static_files - Rust

    Function 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 5ee53c79..3fa9da2a 100644 --- a/mcaptcha/static_assets/static_files/index.html +++ b/mcaptcha/static_assets/static_files/index.html @@ -1,2 +1 @@ -mcaptcha::static_assets::static_files - Rust -
    \ No newline at end of file +mcaptcha::static_assets::static_files - Rust

    Module static_files

    Source

    Modules§

    assets

    Structs§

    Asset 🔒
    Favicons 🔒
    favicons
    static_files

    Functions§

    handle_assets 🔒
    handle_favicons 🔒
    \ 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 7f4f3acf..08da2291 100644 --- a/mcaptcha/static_assets/static_files/struct.Asset.html +++ b/mcaptcha/static_assets/static_files/struct.Asset.html @@ -1,20 +1,34 @@ -Asset in mcaptcha::static_assets::static_files - Rust -
    struct Asset;

    Implementations§

    source§

    impl Asset

    source

    pub fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata.

    -
    source

    pub fn iter() -> impl Iterator<Item = Cow<'static, str>>

    Iterates over the file paths in the folder.

    -

    Trait Implementations§

    source§

    impl RustEmbed for Asset

    source§

    fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata. Read more
    source§

    fn iter() -> Filenames

    Iterates over the file paths in the folder. Read more

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Asset

    §

    impl Send for Asset

    §

    impl Sync for Asset

    §

    impl Unpin for Asset

    §

    impl UnwindSafe for Asset

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Asset in mcaptcha::static_assets::static_files - Rust

    Struct Asset

    Source
    struct Asset;

    Implementations§

    Source§

    impl Asset

    Source

    fn matcher() -> PathMatcher

    Source

    pub fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata.

    +
    Source

    pub fn iter() -> impl Iterator<Item = Cow<'static, str>>

    Iterates over the file paths in the folder.

    +

    Trait Implementations§

    Source§

    impl RustEmbed for Asset

    Source§

    fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata. Read more
    Source§

    fn iter() -> Filenames

    Iterates over the file paths in the folder. Read more

    Auto Trait Implementations§

    §

    impl Freeze for Asset

    §

    impl RefUnwindSafe for Asset

    §

    impl Send for Asset

    §

    impl Sync for Asset

    §

    impl Unpin for Asset

    §

    impl UnwindSafe for Asset

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 4d8eadda..88fd043c 100644 --- a/mcaptcha/static_assets/static_files/struct.Favicons.html +++ b/mcaptcha/static_assets/static_files/struct.Favicons.html @@ -1,20 +1,34 @@ -Favicons in mcaptcha::static_assets::static_files - Rust -
    struct Favicons;

    Implementations§

    source§

    impl Favicons

    source

    pub fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata.

    -
    source

    pub fn iter() -> impl Iterator<Item = Cow<'static, str>>

    Iterates over the file paths in the folder.

    -

    Trait Implementations§

    source§

    impl RustEmbed for Favicons

    source§

    fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata. Read more
    source§

    fn iter() -> Filenames

    Iterates over the file paths in the folder. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Favicons in mcaptcha::static_assets::static_files - Rust

    Struct Favicons

    Source
    struct Favicons;

    Implementations§

    Source§

    impl Favicons

    Source

    fn matcher() -> PathMatcher

    Source

    pub fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata.

    +
    Source

    pub fn iter() -> impl Iterator<Item = Cow<'static, str>>

    Iterates over the file paths in the folder.

    +

    Trait Implementations§

    Source§

    impl RustEmbed for Favicons

    Source§

    fn get(file_path: &str) -> Option<EmbeddedFile>

    Get an embedded file and its metadata. Read more
    Source§

    fn iter() -> Filenames

    Iterates over the file paths in the folder. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 f1e2c687..0321720d 100644 --- a/mcaptcha/static_assets/static_files/struct.favicons.html +++ b/mcaptcha/static_assets/static_files/struct.favicons.html @@ -1,18 +1,32 @@ -favicons in mcaptcha::static_assets::static_files - Rust -
    pub struct favicons;

    Trait Implementations§

    source§

    impl HttpServiceFactory for favicons

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +favicons in mcaptcha::static_assets::static_files - Rust

    Struct favicons

    Source
    pub struct favicons;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for favicons

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 eed64659..a744a877 100644 --- a/mcaptcha/static_assets/static_files/struct.static_files.html +++ b/mcaptcha/static_assets/static_files/struct.static_files.html @@ -1,18 +1,32 @@ -static_files in mcaptcha::static_assets::static_files - Rust -
    pub struct static_files;

    Trait Implementations§

    source§

    impl HttpServiceFactory for static_files

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +static_files in mcaptcha::static_assets::static_files - Rust

    Struct static_files

    Source
    pub struct static_files;

    Trait Implementations§

    Source§

    impl HttpServiceFactory for static_files

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/stats/index.html b/mcaptcha/stats/index.html index 229865c1..3c1f436d 100644 --- a/mcaptcha/stats/index.html +++ b/mcaptcha/stats/index.html @@ -1,2 +1 @@ -mcaptcha::stats - Rust -

    Module mcaptcha::stats

    source ·

    Structs§

    Traits§

    \ No newline at end of file +mcaptcha::stats - Rust

    Module stats

    Source

    Structs§

    CaptchaStats
    Dummy
    Real

    Traits§

    CloneStats
    Trait to clone MCDatabase
    Stats
    \ No newline at end of file diff --git a/mcaptcha/stats/struct.CaptchaStats.html b/mcaptcha/stats/struct.CaptchaStats.html index de947a51..7d1af184 100644 --- a/mcaptcha/stats/struct.CaptchaStats.html +++ b/mcaptcha/stats/struct.CaptchaStats.html @@ -1,28 +1,48 @@ -CaptchaStats in mcaptcha::stats - Rust -
    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§

    source§

    impl Clone for CaptchaStats

    source§

    fn clone(&self) -> CaptchaStats

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for CaptchaStats

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for CaptchaStats

    source§

    fn default() -> CaptchaStats

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for CaptchaStats

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for CaptchaStats

    source§

    fn eq(&self, other: &CaptchaStats) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for CaptchaStats

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl StructuralPartialEq for CaptchaStats

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +CaptchaStats in mcaptcha::stats - Rust

    Struct CaptchaStats

    Source
    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§

    Source§

    impl Clone for CaptchaStats

    Source§

    fn clone(&self) -> CaptchaStats

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for CaptchaStats

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for CaptchaStats

    Source§

    fn default() -> CaptchaStats

    Returns the “default value” for a type. Read more
    Source§

    impl<'de> Deserialize<'de> for CaptchaStats

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for CaptchaStats

    Source§

    fn eq(&self, other: &CaptchaStats) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Serialize for CaptchaStats

    Source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    Source§

    impl StructuralPartialEq for CaptchaStats

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> Serialize for T
    where + T: Serialize + ?Sized,

    Source§

    fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

    Source§

    fn do_erased_serialize( + &self, + serializer: &mut dyn Serializer, +) -> Result<(), ErrorImpl>

    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/stats/struct.Dummy.html b/mcaptcha/stats/struct.Dummy.html index f96da5bd..17541227 100644 --- a/mcaptcha/stats/struct.Dummy.html +++ b/mcaptcha/stats/struct.Dummy.html @@ -1,60 +1,76 @@ -Dummy in mcaptcha::stats - Rust -

    Struct mcaptcha::stats::Dummy

    source ·
    pub struct Dummy;

    Trait Implementations§

    source§

    impl Clone for Dummy

    source§

    fn clone(&self) -> Dummy

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Dummy

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Dummy

    source§

    fn default() -> Dummy

    Returns the “default value” for a type. Read more
    source§

    impl PartialEq for Dummy

    source§

    fn eq(&self, other: &Dummy) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Stats for Dummy

    source§

    fn record_fetch<'life0, 'life1, 'life2, 'async_trait>( +Dummy in mcaptcha::stats - Rust

    Struct Dummy

    Source
    pub struct Dummy;

    Trait Implementations§

    Source§

    impl Clone for Dummy

    Source§

    fn clone(&self) -> Dummy

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Dummy

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for Dummy

    Source§

    fn default() -> Dummy

    Returns the “default value” for a type. Read more
    Source§

    impl PartialEq for Dummy

    Source§

    fn eq(&self, other: &Dummy) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Stats for Dummy

    Source§

    fn record_fetch<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - __arg1: &'life1 Data, - __arg2: &'life2 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + _: &'life1 Data, + _: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig fetches

    -
    source§

    fn record_solve<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    fn record_solve<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - __arg1: &'life1 Data, - __arg2: &'life2 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + _: &'life1 Data, + _: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig solves

    -
    source§

    fn record_confirm<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    fn record_confirm<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, - __arg1: &'life1 Data, - __arg2: &'life2 str -) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where + _: &'life1 Data, + _: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig confirms

    -
    source§

    fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, - __arg1: &'life1 Data, - __arg2: &'life2 str, - __arg3: &'life3 str -) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
    where + _: &'life1 Data, + _: &'life2 str, + _: &'life3 str, +) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    fetch stats

    -
    source§

    impl StructuralPartialEq for Dummy

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Dummy

    §

    impl Send for Dummy

    §

    impl Sync for Dummy

    §

    impl Unpin for Dummy

    §

    impl UnwindSafe for Dummy

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneStats for T
    where - T: Stats + Clone + 'static,

    source§

    fn clone_stats(&self) -> Box<dyn Stats>

    clone DB
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    Source§

    impl StructuralPartialEq for Dummy

    Auto Trait Implementations§

    §

    impl Freeze for Dummy

    §

    impl RefUnwindSafe for Dummy

    §

    impl Send for Dummy

    §

    impl Sync for Dummy

    §

    impl Unpin for Dummy

    §

    impl UnwindSafe for Dummy

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneStats for T
    where + T: Stats + Clone + 'static,

    Source§

    fn clone_stats(&self) -> Box<dyn Stats>

    clone DB
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/stats/struct.Real.html b/mcaptcha/stats/struct.Real.html index 025fce1d..71057af8 100644 --- a/mcaptcha/stats/struct.Real.html +++ b/mcaptcha/stats/struct.Real.html @@ -1,60 +1,76 @@ -Real in mcaptcha::stats - Rust -

    Struct mcaptcha::stats::Real

    source ·
    pub struct Real;

    Trait Implementations§

    source§

    impl Clone for Real

    source§

    fn clone(&self) -> Real

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Real

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for Real

    source§

    fn default() -> Real

    Returns the “default value” for a type. Read more
    source§

    impl PartialEq for Real

    source§

    fn eq(&self, other: &Real) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Stats for Real

    source§

    fn record_fetch<'life0, 'life1, 'life2, 'async_trait>( +Real in mcaptcha::stats - Rust

    Struct Real

    Source
    pub struct Real;

    Trait Implementations§

    Source§

    impl Clone for Real

    Source§

    fn clone(&self) -> Real

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Real

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for Real

    Source§

    fn default() -> Real

    Returns the “default value” for a type. Read more
    Source§

    impl PartialEq for Real

    Source§

    fn eq(&self, other: &Real) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Stats for Real

    Source§

    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 + d: &'life1 Data, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig fetches

    -
    source§

    fn record_solve<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + d: &'life1 Data, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig solves

    -
    source§

    fn record_confirm<'life0, 'life1, 'life2, 'async_trait>( +

    Source§

    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 + d: &'life1 Data, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig confirms

    -
    source§

    fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source§

    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 + d: &'life1 Data, + user: &'life2 str, + key: &'life3 str, +) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    fetch stats

    -
    source§

    impl StructuralPartialEq for Real

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Real

    §

    impl Send for Real

    §

    impl Sync for Real

    §

    impl Unpin for Real

    §

    impl UnwindSafe for Real

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneStats for T
    where - T: Stats + Clone + 'static,

    source§

    fn clone_stats(&self) -> Box<dyn Stats>

    clone DB
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    Source§

    impl StructuralPartialEq for Real

    Auto Trait Implementations§

    §

    impl Freeze for Real

    §

    impl RefUnwindSafe for Real

    §

    impl Send for Real

    §

    impl Sync for Real

    §

    impl Unpin for Real

    §

    impl UnwindSafe for Real

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneStats for T
    where + T: Stats + Clone + 'static,

    Source§

    fn clone_stats(&self) -> Box<dyn Stats>

    clone DB
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/stats/trait.CloneStats.html b/mcaptcha/stats/trait.CloneStats.html index 4e6c1338..0ee70903 100644 --- a/mcaptcha/stats/trait.CloneStats.html +++ b/mcaptcha/stats/trait.CloneStats.html @@ -1,8 +1,7 @@ -CloneStats in mcaptcha::stats - Rust -
    pub trait CloneStats {
    +CloneStats in mcaptcha::stats - Rust

    Trait CloneStats

    Source
    pub trait CloneStats {
         // Required method
    -    fn clone_stats(&self) -> Box<dyn Stats>;
    +    fn clone_stats(&self) -> Box<dyn Stats>;
     }
    Expand description

    Trait to clone MCDatabase

    -

    Required Methods§

    source

    fn clone_stats(&self) -> Box<dyn Stats>

    clone DB

    -

    Implementors§

    source§

    impl<T> CloneStats for T
    where - T: Stats + Clone + 'static,

    \ No newline at end of file +

    Required Methods§

    Source

    fn clone_stats(&self) -> Box<dyn Stats>

    clone DB

    +

    Implementors§

    Source§

    impl<T> CloneStats for T
    where + T: Stats + Clone + 'static,

    \ No newline at end of file diff --git a/mcaptcha/stats/trait.Stats.html b/mcaptcha/stats/trait.Stats.html index 55f20016..56c612c5 100644 --- a/mcaptcha/stats/trait.Stats.html +++ b/mcaptcha/stats/trait.Stats.html @@ -1,80 +1,82 @@ -Stats in mcaptcha::stats - Rust -

    Trait mcaptcha::stats::Stats

    source ·
    pub trait Stats: Send + Sync + CloneStats {
    +Stats in mcaptcha::stats - Rust

    Trait Stats

    Source
    pub trait Stats:
    +    Send
    +    + Sync
    +    + CloneStats {
         // Required methods
         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>>
    +        d: &'life1 Data,
    +        key: &'life2 str,
    +    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait,
                  'life1: 'async_trait,
                  'life2: '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>>
    +        d: &'life1 Data,
    +        key: &'life2 str,
    +    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait,
                  'life1: 'async_trait,
                  'life2: '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>>
    +        d: &'life1 Data,
    +        key: &'life2 str,
    +    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait,
                  'life1: 'async_trait,
                  'life2: '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>>
    +        d: &'life1 Data,
    +        user: &'life2 str,
    +        key: &'life3 str,
    +    ) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait,
                  'life1: 'async_trait,
                  'life2: 'async_trait,
                  'life3: 'async_trait;
    -}

    Required Methods§

    source

    fn record_fetch<'life0, 'life1, 'life2, 'async_trait>( +}

    Required Methods§

    Source

    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 + d: &'life1 Data, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig fetches

    -
    source

    fn record_solve<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + d: &'life1 Data, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig solves

    -
    source

    fn record_confirm<'life0, 'life1, 'life2, 'async_trait>( +

    Source

    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 + d: &'life1 Data, + key: &'life2 str, +) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

    record PoWConfig confirms

    -
    source

    fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>( +

    Source

    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 + d: &'life1 Data, + user: &'life2 str, + key: &'life3 str, +) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

    fetch stats

    -

    Implementors§

    \ No newline at end of file +

    Implementors§

    \ No newline at end of file diff --git a/mcaptcha/struct.BAR_CHART.html b/mcaptcha/struct.BAR_CHART.html index 115bc5ae..23b11f75 100644 --- a/mcaptcha/struct.BAR_CHART.html +++ b/mcaptcha/struct.BAR_CHART.html @@ -1,20 +1,36 @@ -BAR_CHART in mcaptcha - Rust -

    Struct mcaptcha::BAR_CHART

    source ·
    pub struct BAR_CHART {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for BAR_CHART

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for BAR_CHART

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +BAR_CHART in mcaptcha - Rust

    Struct BAR_CHART

    Source
    pub struct BAR_CHART {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for BAR_CHART

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for BAR_CHART

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.CREDIT_CARD.html b/mcaptcha/struct.CREDIT_CARD.html index 286fd46a..beca0275 100644 --- a/mcaptcha/struct.CREDIT_CARD.html +++ b/mcaptcha/struct.CREDIT_CARD.html @@ -1,20 +1,36 @@ -CREDIT_CARD in mcaptcha - Rust -

    Struct mcaptcha::CREDIT_CARD

    source ·
    pub struct CREDIT_CARD {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for CREDIT_CARD

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for CREDIT_CARD

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +CREDIT_CARD in mcaptcha - Rust

    Struct CREDIT_CARD

    Source
    pub struct CREDIT_CARD {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for CREDIT_CARD

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for CREDIT_CARD

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.CSS.html b/mcaptcha/struct.CSS.html index 85c1f6f7..dd2f7392 100644 --- a/mcaptcha/struct.CSS.html +++ b/mcaptcha/struct.CSS.html @@ -1,8 +1,7 @@ -CSS in mcaptcha - Rust -

    Struct mcaptcha::CSS

    source ·
    pub struct CSS {
    -    pub(crate) __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +CSS in mcaptcha - Rust

    Struct CSS

    Source
    pub struct CSS {
    +    pub(crate) __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -10,14 +9,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -34,7 +33,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -49,9 +48,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -62,24 +61,24 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -91,8 +90,8 @@ If you need to mutate the contents of the string slice, use // out of bounds
     assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -111,14 +110,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -139,17 +138,17 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -157,18 +156,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -176,10 +173,10 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -202,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̆";
     
    @@ -212,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -238,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";
     
    @@ -252,7 +249,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -264,12 +261,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -294,10 +291,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -308,7 +306,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -322,7 +321,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -356,8 +355,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -365,45 +365,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -427,12 +437,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -454,17 +464,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -480,6 +492,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -527,13 +542,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -546,17 +561,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -575,21 +590,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -599,13 +614,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -613,7 +628,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();
    @@ -624,17 +639,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -654,19 +669,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -682,69 +697,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -754,19 +769,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -776,14 +791,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -803,7 +818,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -823,7 +838,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -844,7 +859,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -865,11 +880,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -882,10 +897,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -898,41 +913,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -943,34 +999,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -981,19 +1037,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1008,54 +1064,52 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1071,8 +1125,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1088,8 +1142,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1105,45 +1159,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1164,13 +1238,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1186,10 +1260,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1197,42 +1271,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for CSS

    §

    type Target = &'static str

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    source§

    impl LazyStatic for CSS

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for CSS

    §

    impl Send for CSS

    §

    impl Sync for CSS

    §

    impl Unpin for CSS

    §

    impl UnwindSafe for CSS

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for CSS

    Source§

    type Target = &'static str

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    Source§

    impl LazyStatic for CSS

    Auto Trait Implementations§

    §

    impl Freeze for CSS

    §

    impl RefUnwindSafe for CSS

    §

    impl Send for CSS

    §

    impl Sync for CSS

    §

    impl Unpin for CSS

    §

    impl UnwindSafe for CSS

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.DOCS_ICON.html b/mcaptcha/struct.DOCS_ICON.html index 3507c038..59188749 100644 --- a/mcaptcha/struct.DOCS_ICON.html +++ b/mcaptcha/struct.DOCS_ICON.html @@ -1,20 +1,36 @@ -DOCS_ICON in mcaptcha - Rust -

    Struct mcaptcha::DOCS_ICON

    source ·
    pub struct DOCS_ICON {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for DOCS_ICON

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for DOCS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +DOCS_ICON in mcaptcha - Rust

    Struct DOCS_ICON

    Source
    pub struct DOCS_ICON {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for DOCS_ICON

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for DOCS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.Data.html b/mcaptcha/struct.Data.html index 64e8a24f..771b7b4b 100644 --- a/mcaptcha/struct.Data.html +++ b/mcaptcha/struct.Data.html @@ -1,35 +1,49 @@ -Data in mcaptcha - Rust -

    Struct mcaptcha::Data

    source ·
    pub struct Data {
    -    pub db: Box<dyn MCDatabase>,
    +Data in mcaptcha - Rust

    Struct Data

    Source
    pub struct Data {
    +    pub db: Box<dyn MCDatabase>,
         pub creds: Config,
         pub captcha: SystemGroup,
    -    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
    -    pub settings: Settings,
    -    pub stats: Box<dyn Stats>,
    +    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
    +    pub settings: Settings,
    +    pub stats: Box<dyn Stats>,
         pub survey_secrets: SecretsStore,
     }
    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

    -
    §settings: Settings

    app settings

    -
    §stats: Box<dyn Stats>

    stats recorder

    +
    §mailer: Option<AsyncSmtpTransport<Tokio1Executor>>

    email client

    +
    §settings: Settings

    app settings

    +
    §stats: Box<dyn Stats>

    stats recorder

    §survey_secrets: SecretsStore

    survey secret store

    -

    Implementations§

    source§

    impl Data

    source

    pub fn get_creds() -> Config

    source

    pub async fn new(s: &Settings, survey_secrets: SecretsStore) -> Arc<Self>

    create new instance of app data

    -
    source

    fn get_mailer(s: &Settings) -> Option<AsyncSmtpTransport<Tokio1Executor>>

    source

    async fn upload_survey_job(&self) -> Result<(), ServiceError>

    source

    async fn register_survey(&self) -> Result<(), ServiceError>

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Data

    §

    impl Send for Data

    §

    impl Sync for Data

    §

    impl Unpin for Data

    §

    impl !UnwindSafe for Data

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Implementations§

    Source§

    impl Data

    Source

    pub fn get_creds() -> Config

    Source

    pub async fn new(s: &Settings, survey_secrets: SecretsStore) -> Arc<Self>

    create new instance of app data

    +
    Source

    fn get_mailer(s: &Settings) -> Option<AsyncSmtpTransport<Tokio1Executor>>

    Source

    async fn upload_survey_job(&self) -> Result<(), ServiceError>

    Source

    async fn register_survey(&self) -> Result<(), ServiceError>

    Auto Trait Implementations§

    §

    impl Freeze for Data

    §

    impl !RefUnwindSafe for Data

    §

    impl Send for Data

    §

    impl Sync for Data

    §

    impl Unpin for Data

    §

    impl !UnwindSafe for Data

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.FILES.html b/mcaptcha/struct.FILES.html index f568112c..36eec583 100644 --- a/mcaptcha/struct.FILES.html +++ b/mcaptcha/struct.FILES.html @@ -1,20 +1,36 @@ -FILES in mcaptcha - Rust -

    Struct mcaptcha::FILES

    source ·
    pub struct FILES {
    -    pub(crate) __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = FileMap>§

    source

    pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str>

    Trait Implementations§

    source§

    impl Deref for FILES

    §

    type Target = FileMap

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &FileMap

    Dereferences the value.
    source§

    impl LazyStatic for FILES

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for FILES

    §

    impl Send for FILES

    §

    impl Sync for FILES

    §

    impl Unpin for FILES

    §

    impl UnwindSafe for FILES

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +FILES in mcaptcha - Rust

    Struct FILES

    Source
    pub struct FILES {
    +    pub(crate) __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = FileMap>§

    Source

    pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str>

    Trait Implementations§

    Source§

    impl Deref for FILES

    Source§

    type Target = FileMap

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &FileMap

    Dereferences the value.
    Source§

    impl LazyStatic for FILES

    Auto Trait Implementations§

    §

    impl Freeze for FILES

    §

    impl RefUnwindSafe for FILES

    §

    impl Send for FILES

    §

    impl Sync for FILES

    §

    impl Unpin for FILES

    §

    impl UnwindSafe for FILES

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.GITHUB.html b/mcaptcha/struct.GITHUB.html index 735b859a..f01e1532 100644 --- a/mcaptcha/struct.GITHUB.html +++ b/mcaptcha/struct.GITHUB.html @@ -1,20 +1,36 @@ -GITHUB in mcaptcha - Rust -

    Struct mcaptcha::GITHUB

    source ·
    pub struct GITHUB {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for GITHUB

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for GITHUB

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +GITHUB in mcaptcha - Rust

    Struct GITHUB

    Source
    pub struct GITHUB {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for GITHUB

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for GITHUB

    Auto Trait Implementations§

    §

    impl Freeze for GITHUB

    §

    impl RefUnwindSafe for GITHUB

    §

    impl Send for GITHUB

    §

    impl Sync for GITHUB

    §

    impl Unpin for GITHUB

    §

    impl UnwindSafe for GITHUB

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.HELP_CIRCLE.html b/mcaptcha/struct.HELP_CIRCLE.html index 3f1ba2a9..54af5684 100644 --- a/mcaptcha/struct.HELP_CIRCLE.html +++ b/mcaptcha/struct.HELP_CIRCLE.html @@ -1,20 +1,36 @@ -HELP_CIRCLE in mcaptcha - Rust -

    Struct mcaptcha::HELP_CIRCLE

    source ·
    pub struct HELP_CIRCLE {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for HELP_CIRCLE

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for HELP_CIRCLE

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +HELP_CIRCLE in mcaptcha - Rust

    Struct HELP_CIRCLE

    Source
    pub struct HELP_CIRCLE {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for HELP_CIRCLE

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for HELP_CIRCLE

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.HOME.html b/mcaptcha/struct.HOME.html index f2869713..e3b07170 100644 --- a/mcaptcha/struct.HOME.html +++ b/mcaptcha/struct.HOME.html @@ -1,20 +1,36 @@ -HOME in mcaptcha - Rust -

    Struct mcaptcha::HOME

    source ·
    pub struct HOME {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for HOME

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for HOME

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for HOME

    §

    impl Send for HOME

    §

    impl Sync for HOME

    §

    impl Unpin for HOME

    §

    impl UnwindSafe for HOME

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +HOME in mcaptcha - Rust

    Struct HOME

    Source
    pub struct HOME {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for HOME

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for HOME

    Auto Trait Implementations§

    §

    impl Freeze for HOME

    §

    impl RefUnwindSafe for HOME

    §

    impl Send for HOME

    §

    impl Sync for HOME

    §

    impl Unpin for HOME

    §

    impl UnwindSafe for HOME

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.JS.html b/mcaptcha/struct.JS.html index 87a2cb18..c312d786 100644 --- a/mcaptcha/struct.JS.html +++ b/mcaptcha/struct.JS.html @@ -1,8 +1,7 @@ -JS in mcaptcha - Rust -

    Struct mcaptcha::JS

    source ·
    pub struct JS {
    -    pub(crate) __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +JS in mcaptcha - Rust

    Struct JS

    Source
    pub struct JS {
    +    pub(crate) __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -10,14 +9,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -34,7 +33,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -49,9 +48,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -62,24 +61,24 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -91,8 +90,8 @@ If you need to mutate the contents of the string slice, use // out of bounds
     assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -111,14 +110,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -139,17 +138,17 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -157,18 +156,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -176,10 +173,10 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -202,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̆";
     
    @@ -212,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -238,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";
     
    @@ -252,7 +249,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -264,12 +261,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -294,10 +291,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -308,7 +306,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -322,7 +321,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -356,8 +355,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -365,45 +365,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -427,12 +437,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -454,17 +464,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -480,6 +492,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -527,13 +542,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -546,17 +561,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -575,21 +590,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -599,13 +614,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -613,7 +628,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();
    @@ -624,17 +639,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -654,19 +669,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -682,69 +697,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -754,19 +769,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -776,14 +791,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -803,7 +818,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -823,7 +838,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -844,7 +859,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -865,11 +880,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -882,10 +897,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -898,41 +913,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -943,34 +999,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -981,19 +1037,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1008,54 +1064,52 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1071,8 +1125,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1088,8 +1142,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1105,45 +1159,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1164,13 +1238,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1186,10 +1260,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1197,42 +1271,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for JS

    §

    type Target = &'static str

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    source§

    impl LazyStatic for JS

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for JS

    §

    impl Send for JS

    §

    impl Sync for JS

    §

    impl Unpin for JS

    §

    impl UnwindSafe for JS

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for JS

    Source§

    type Target = &'static str

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    Source§

    impl LazyStatic for JS

    Auto Trait Implementations§

    §

    impl Freeze for JS

    §

    impl RefUnwindSafe for JS

    §

    impl Send for JS

    §

    impl Sync for JS

    §

    impl Unpin for JS

    §

    impl UnwindSafe for JS

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.KEY.html b/mcaptcha/struct.KEY.html index a2848309..19967235 100644 --- a/mcaptcha/struct.KEY.html +++ b/mcaptcha/struct.KEY.html @@ -1,20 +1,36 @@ -KEY in mcaptcha - Rust -

    Struct mcaptcha::KEY

    source ·
    pub struct KEY {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for KEY

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for KEY

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for KEY

    §

    impl Send for KEY

    §

    impl Sync for KEY

    §

    impl Unpin for KEY

    §

    impl UnwindSafe for KEY

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +KEY in mcaptcha - Rust

    Struct KEY

    Source
    pub struct KEY {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for KEY

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for KEY

    Auto Trait Implementations§

    §

    impl Freeze for KEY

    §

    impl RefUnwindSafe for KEY

    §

    impl Send for KEY

    §

    impl Sync for KEY

    §

    impl Unpin for KEY

    §

    impl UnwindSafe for KEY

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html b/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html index b26c4e98..da1c29fc 100644 --- a/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html +++ b/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html @@ -1,20 +1,36 @@ -MCAPTCHA_TRANS_ICON in mcaptcha - Rust -
    pub struct MCAPTCHA_TRANS_ICON {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for MCAPTCHA_TRANS_ICON

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for MCAPTCHA_TRANS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +MCAPTCHA_TRANS_ICON in mcaptcha - Rust

    Struct MCAPTCHA_TRANS_ICON

    Source
    pub struct MCAPTCHA_TRANS_ICON {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for MCAPTCHA_TRANS_ICON

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for MCAPTCHA_TRANS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.MESSAGE.html b/mcaptcha/struct.MESSAGE.html index 0c2a0a8e..b64948d0 100644 --- a/mcaptcha/struct.MESSAGE.html +++ b/mcaptcha/struct.MESSAGE.html @@ -1,20 +1,36 @@ -MESSAGE in mcaptcha - Rust -

    Struct mcaptcha::MESSAGE

    source ·
    pub struct MESSAGE {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for MESSAGE

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for MESSAGE

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +MESSAGE in mcaptcha - Rust

    Struct MESSAGE

    Source
    pub struct MESSAGE {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for MESSAGE

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for MESSAGE

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.MOBILE_CSS.html b/mcaptcha/struct.MOBILE_CSS.html index cd069fca..72630251 100644 --- a/mcaptcha/struct.MOBILE_CSS.html +++ b/mcaptcha/struct.MOBILE_CSS.html @@ -1,8 +1,7 @@ -MOBILE_CSS in mcaptcha - Rust -

    Struct mcaptcha::MOBILE_CSS

    source ·
    pub struct MOBILE_CSS {
    -    pub(crate) __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +MOBILE_CSS in mcaptcha - Rust

    Struct MOBILE_CSS

    Source
    pub struct MOBILE_CSS {
    +    pub(crate) __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -10,14 +9,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -34,7 +33,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -49,9 +48,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -62,24 +61,24 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -91,8 +90,8 @@ If you need to mutate the contents of the string slice, use // out of bounds
     assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -111,14 +110,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -139,17 +138,17 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -157,18 +156,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -176,10 +173,10 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -202,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̆";
     
    @@ -212,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -238,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";
     
    @@ -252,7 +249,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -264,12 +261,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -294,10 +291,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -308,7 +306,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -322,7 +321,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -356,8 +355,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -365,45 +365,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -427,12 +437,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -454,17 +464,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -480,6 +492,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -527,13 +542,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -546,17 +561,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -575,21 +590,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -599,13 +614,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -613,7 +628,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();
    @@ -624,17 +639,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -654,19 +669,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -682,69 +697,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -754,19 +769,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -776,14 +791,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -803,7 +818,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -823,7 +838,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -844,7 +859,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -865,11 +880,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -882,10 +897,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -898,41 +913,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -943,34 +999,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -981,19 +1037,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1008,54 +1064,52 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1071,8 +1125,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1088,8 +1142,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1105,45 +1159,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1164,13 +1238,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1186,10 +1260,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1197,42 +1271,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for MOBILE_CSS

    §

    type Target = &'static str

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    source§

    impl LazyStatic for MOBILE_CSS

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for MOBILE_CSS

    Source§

    type Target = &'static str

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    Source§

    impl LazyStatic for MOBILE_CSS

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.SETTINGS.html b/mcaptcha/struct.SETTINGS.html index ed50007b..01ff7b27 100644 --- a/mcaptcha/struct.SETTINGS.html +++ b/mcaptcha/struct.SETTINGS.html @@ -1,20 +1,36 @@ -SETTINGS in mcaptcha - Rust -

    Struct mcaptcha::SETTINGS

    source ·
    pub struct SETTINGS {
    -    pub(crate) __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = Settings>§

    Trait Implementations§

    source§

    impl Deref for SETTINGS

    §

    type Target = Settings

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Settings

    Dereferences the value.
    source§

    impl LazyStatic for SETTINGS

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +SETTINGS in mcaptcha - Rust

    Struct SETTINGS

    Source
    pub struct SETTINGS {
    +    pub(crate) __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = Settings>§

    Trait Implementations§

    Source§

    impl Deref for SETTINGS

    Source§

    type Target = Settings

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &Settings

    Dereferences the value.
    Source§

    impl LazyStatic for SETTINGS

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.SETTINGS_ICON.html b/mcaptcha/struct.SETTINGS_ICON.html index e3243714..1444d759 100644 --- a/mcaptcha/struct.SETTINGS_ICON.html +++ b/mcaptcha/struct.SETTINGS_ICON.html @@ -1,20 +1,36 @@ -SETTINGS_ICON in mcaptcha - Rust -

    Struct mcaptcha::SETTINGS_ICON

    source ·
    pub struct SETTINGS_ICON {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Trait Implementations§

    source§

    impl Deref for SETTINGS_ICON

    §

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    source§

    impl LazyStatic for SETTINGS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +SETTINGS_ICON in mcaptcha - Rust

    Struct SETTINGS_ICON

    Source
    pub struct SETTINGS_ICON {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Trait Implementations§

    Source§

    impl Deref for SETTINGS_ICON

    Source§

    type Target = (&'static str, &'static str)

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &(&'static str, &'static str)

    Dereferences the value.
    Source§

    impl LazyStatic for SETTINGS_ICON

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ 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 1f9898f2..74048661 100644 --- a/mcaptcha/struct.SOURCE_FILES_OF_INSTANCE.html +++ b/mcaptcha/struct.SOURCE_FILES_OF_INSTANCE.html @@ -1,24 +1,23 @@ -SOURCE_FILES_OF_INSTANCE in mcaptcha - Rust -
    pub struct SOURCE_FILES_OF_INSTANCE {
    -    pub(crate) __private_field: (),
    +SOURCE_FILES_OF_INSTANCE in mcaptcha - Rust

    Struct SOURCE_FILES_OF_INSTANCE

    Source
    pub struct SOURCE_FILES_OF_INSTANCE {
    +    pub(crate) __private_field: (),
     }
    Expand description

    points to source files matching build commit

    -

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -28,15 +27,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -44,14 +43,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -68,7 +67,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -83,9 +82,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -96,12 +95,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -127,25 +126,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -157,13 +156,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -182,8 +181,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -202,11 +201,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -225,14 +224,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -253,18 +252,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -273,17 +272,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -291,16 +290,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -310,18 +309,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -329,20 +326,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -352,10 +347,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -378,7 +373,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̆";
     
    @@ -388,12 +383,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -414,7 +409,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";
     
    @@ -428,7 +423,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -440,12 +435,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -470,10 +465,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -484,7 +480,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -498,7 +495,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -532,8 +529,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -541,45 +539,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -603,12 +611,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -630,17 +638,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -656,6 +666,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -703,13 +716,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -722,17 +735,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -751,21 +764,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -775,13 +788,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -789,7 +802,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();
    @@ -800,17 +813,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -830,19 +843,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -858,69 +871,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -930,19 +943,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -952,14 +965,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -979,7 +992,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -999,7 +1012,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1020,7 +1033,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1041,11 +1054,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1058,10 +1071,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1074,41 +1087,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1119,34 +1173,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1157,19 +1211,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1184,76 +1238,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1269,8 +1321,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1286,8 +1338,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1303,45 +1355,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1362,13 +1434,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1384,10 +1456,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1395,42 +1467,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for SOURCE_FILES_OF_INSTANCE

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for SOURCE_FILES_OF_INSTANCE

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for SOURCE_FILES_OF_INSTANCE

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for SOURCE_FILES_OF_INSTANCE

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.Settings.html b/mcaptcha/struct.Settings.html index ba8b3e57..21643beb 100644 --- a/mcaptcha/struct.Settings.html +++ b/mcaptcha/struct.Settings.html @@ -1,41 +1,55 @@ -Settings in mcaptcha - Rust -

    Struct mcaptcha::Settings

    source ·
    pub struct Settings {
    -    pub debug: bool,
    -    pub commercial: bool,
    -    pub source_code: String,
    -    pub allow_registration: bool,
    -    pub allow_demo: bool,
    +Settings in mcaptcha - Rust

    Struct Settings

    Source
    pub struct Settings {
    +    pub debug: bool,
    +    pub commercial: bool,
    +    pub source_code: String,
    +    pub allow_registration: bool,
    +    pub allow_demo: bool,
         pub database: Database,
    -    pub survey: Option<Survey>,
    -    pub redis: Option<Redis>,
    +    pub survey: Option<Survey>,
    +    pub redis: Option<Redis>,
         pub server: Server,
         pub captcha: Captcha,
    -    pub smtp: Option<Smtp>,
    -}

    Fields§

    §debug: bool§commercial: bool§source_code: String§allow_registration: bool§allow_demo: bool§database: Database§survey: Option<Survey>§redis: Option<Redis>§server: Server§captcha: Captcha§smtp: Option<Smtp>

    Implementations§

    source§

    impl Settings

    source

    pub fn new() -> Result<Self, ConfigError>

    source

    fn check_easy_captcha_config(&self)

    source

    fn env_override(s: ConfigBuilder<DefaultState>) -> ConfigBuilder<DefaultState>

    source

    fn set_database_type(&mut self)

    source

    fn check_url(&self)

    Trait Implementations§

    source§

    impl Clone for Settings

    source§

    fn clone(&self) -> Settings

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Settings

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for Settings

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for Settings

    source§

    fn eq(&self, other: &Settings) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Settings

    source§

    impl StructuralPartialEq for Settings

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + pub smtp: Option<Smtp>, +}

    Fields§

    §debug: bool§commercial: bool§source_code: String§allow_registration: bool§allow_demo: bool§database: Database§survey: Option<Survey>§redis: Option<Redis>§server: Server§captcha: Captcha§smtp: Option<Smtp>

    Implementations§

    Source§

    impl Settings

    Source

    pub fn new() -> Result<Self, ConfigError>

    Source

    fn check_easy_captcha_config(&self)

    Source

    fn env_override(s: ConfigBuilder<DefaultState>) -> ConfigBuilder<DefaultState>

    Source

    fn set_database_type(&mut self)

    Source

    fn check_url(&self)

    Trait Implementations§

    Source§

    impl Clone for Settings

    Source§

    fn clone(&self) -> Settings

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for Settings

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl<'de> Deserialize<'de> for Settings

    Source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    Source§

    impl PartialEq for Settings

    Source§

    fn eq(&self, other: &Settings) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for Settings

    Source§

    impl StructuralPartialEq for Settings

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    Source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html b/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html index 3c2f310d..39cf1324 100644 --- a/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html +++ b/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html @@ -1,8 +1,7 @@ -VERIFICATIN_WIDGET_CSS in mcaptcha - Rust -
    pub struct VERIFICATIN_WIDGET_CSS {
    -    pub(crate) __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +VERIFICATIN_WIDGET_CSS in mcaptcha - Rust

    Struct VERIFICATIN_WIDGET_CSS

    Source
    pub struct VERIFICATIN_WIDGET_CSS {
    +    pub(crate) __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -10,14 +9,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -34,7 +33,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -49,9 +48,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -62,24 +61,24 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -91,8 +90,8 @@ If you need to mutate the contents of the string slice, use // out of bounds
     assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -111,14 +110,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -139,17 +138,17 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -157,18 +156,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -176,10 +173,10 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -202,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̆";
     
    @@ -212,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -238,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";
     
    @@ -252,7 +249,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -264,12 +261,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -294,10 +291,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -308,7 +306,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -322,7 +321,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -356,8 +355,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -365,45 +365,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -427,12 +437,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -454,17 +464,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -480,6 +492,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -527,13 +542,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -546,17 +561,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -575,21 +590,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -599,13 +614,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -613,7 +628,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();
    @@ -624,17 +639,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -654,19 +669,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -682,69 +697,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -754,19 +769,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -776,14 +791,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -803,7 +818,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -823,7 +838,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -844,7 +859,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -865,11 +880,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -882,10 +897,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -898,41 +913,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -943,34 +999,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -981,19 +1037,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1008,54 +1064,52 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1071,8 +1125,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1088,8 +1142,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1105,45 +1159,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1164,13 +1238,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1186,10 +1260,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1197,42 +1271,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for VERIFICATIN_WIDGET_CSS

    §

    type Target = &'static str

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    source§

    impl LazyStatic for VERIFICATIN_WIDGET_CSS

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for VERIFICATIN_WIDGET_CSS

    Source§

    type Target = &'static str

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    Source§

    impl LazyStatic for VERIFICATIN_WIDGET_CSS

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html b/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html index 7208ff72..8235cdcb 100644 --- a/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html +++ b/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html @@ -1,8 +1,7 @@ -VERIFICATIN_WIDGET_JS in mcaptcha - Rust -
    pub struct VERIFICATIN_WIDGET_JS {
    -    pub(crate) __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +VERIFICATIN_WIDGET_JS in mcaptcha - Rust

    Struct VERIFICATIN_WIDGET_JS

    Source
    pub struct VERIFICATIN_WIDGET_JS {
    +    pub(crate) __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = &'static str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -10,14 +9,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -34,7 +33,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -49,9 +48,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -62,24 +61,24 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -91,8 +90,8 @@ If you need to mutate the contents of the string slice, use // out of bounds
     assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -111,14 +110,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -139,17 +138,17 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -157,18 +156,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -176,10 +173,10 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -202,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̆";
     
    @@ -212,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -238,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";
     
    @@ -252,7 +249,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -264,12 +261,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -294,10 +291,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -308,7 +306,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -322,7 +321,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -356,8 +355,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -365,45 +365,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -427,12 +437,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -454,17 +464,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -480,6 +492,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -527,13 +542,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -546,17 +561,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -575,21 +590,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -599,13 +614,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -613,7 +628,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();
    @@ -624,17 +639,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -654,19 +669,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -682,69 +697,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -754,19 +769,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -776,14 +791,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -803,7 +818,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -823,7 +838,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -844,7 +859,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -865,11 +880,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -882,10 +897,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -898,41 +913,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -943,34 +999,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -981,19 +1037,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1008,54 +1064,52 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1071,8 +1125,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1088,8 +1142,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1105,45 +1159,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1164,13 +1238,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1186,10 +1260,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1197,42 +1271,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for VERIFICATIN_WIDGET_JS

    §

    type Target = &'static str

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    source§

    impl LazyStatic for VERIFICATIN_WIDGET_JS

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for VERIFICATIN_WIDGET_JS

    Source§

    type Target = &'static str

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &&'static str

    Dereferences the value.
    Source§

    impl LazyStatic for VERIFICATIN_WIDGET_JS

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/survey/index.html b/mcaptcha/survey/index.html index 9eecad7f..35c7aa62 100644 --- a/mcaptcha/survey/index.html +++ b/mcaptcha/survey/index.html @@ -1,2 +1 @@ -mcaptcha::survey - Rust -
    \ No newline at end of file +mcaptcha::survey - Rust

    Module survey

    Source

    Structs§

    SecretsStore
    Survey

    Traits§

    SurveyClientTrait
    \ No newline at end of file diff --git a/mcaptcha/survey/struct.SecretsStore.html b/mcaptcha/survey/struct.SecretsStore.html index 7798fa41..b7685fb3 100644 --- a/mcaptcha/survey/struct.SecretsStore.html +++ b/mcaptcha/survey/struct.SecretsStore.html @@ -1,21 +1,38 @@ -SecretsStore in mcaptcha::survey - Rust -
    pub struct SecretsStore {
    -    store: Arc<RwLock<HashMap<String, String>>>,
    -}

    Fields§

    §store: Arc<RwLock<HashMap<String, String>>>

    Implementations§

    source§

    impl SecretsStore

    source

    pub fn get(&self, key: &str) -> Option<String>

    source

    pub fn rm(&self, key: &str)

    source

    pub fn set(&self, key: String, value: String)

    Trait Implementations§

    source§

    impl Clone for SecretsStore

    source§

    fn clone(&self) -> SecretsStore

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for SecretsStore

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for SecretsStore

    source§

    fn default() -> SecretsStore

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +SecretsStore in mcaptcha::survey - Rust

    Struct SecretsStore

    Source
    pub struct SecretsStore {
    +    store: Arc<RwLock<HashMap<String, String>>>,
    +}

    Fields§

    §store: Arc<RwLock<HashMap<String, String>>>

    Implementations§

    Source§

    impl SecretsStore

    Source

    pub fn get(&self, key: &str) -> Option<String>

    Source

    pub fn rm(&self, key: &str)

    Source

    pub fn set(&self, key: String, value: String)

    Trait Implementations§

    Source§

    impl Clone for SecretsStore

    Source§

    fn clone(&self) -> SecretsStore

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl Debug for SecretsStore

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    Source§

    impl Default for SecretsStore

    Source§

    fn default() -> SecretsStore

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/survey/struct.Survey.html b/mcaptcha/survey/struct.Survey.html index c9b115fe..18276324 100644 --- a/mcaptcha/survey/struct.Survey.html +++ b/mcaptcha/survey/struct.Survey.html @@ -1,38 +1,55 @@ -Survey in mcaptcha::survey - Rust -

    Struct mcaptcha::survey::Survey

    source ·
    pub struct Survey {
    -    client: Client,
    +Survey in mcaptcha::survey - Rust

    Struct Survey

    Source
    pub struct Survey {
    +    client: Client,
         app_ctx: AppData,
    -}

    Fields§

    §client: Client§app_ctx: AppData

    Implementations§

    source§

    impl Survey

    source

    pub fn new(app_ctx: AppData) -> Self

    Trait Implementations§

    source§

    impl Clone for Survey

    source§

    fn clone(&self) -> Survey

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl SurveyClientTrait for Survey

    source§

    fn start_job<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(Sender<()>, JoinHandle<()>), ServiceError>> + Send + 'async_trait>>
    where +}

    Fields§

    §client: Client§app_ctx: AppData

    Implementations§

    Source§

    impl Survey

    Source

    pub fn new(app_ctx: AppData) -> Self

    Trait Implementations§

    Source§

    impl Clone for Survey

    Source§

    fn clone(&self) -> Survey

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl SurveyClientTrait for Survey

    Source§

    fn start_job<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(Sender<()>, JoinHandle<()>), ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn is_online<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<bool, ServiceError>> + Send + 'async_trait>>
    where + 'life0: 'async_trait,

    Source§

    fn is_online<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<bool, ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn schedule_upload_job<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where + 'life0: 'async_trait,

    Source§

    fn schedule_upload_job<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn register<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where + 'life0: 'async_trait,

    Source§

    fn register<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Auto Trait Implementations§

    §

    impl !RefUnwindSafe for Survey

    §

    impl Send for Survey

    §

    impl Sync for Survey

    §

    impl Unpin for Survey

    §

    impl !UnwindSafe for Survey

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + 'life0: 'async_trait,

    Auto Trait Implementations§

    §

    impl Freeze for Survey

    §

    impl !RefUnwindSafe for Survey

    §

    impl Send for Survey

    §

    impl Sync for Survey

    §

    impl Unpin for Survey

    §

    impl !UnwindSafe for Survey

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/survey/trait.SurveyClientTrait.html b/mcaptcha/survey/trait.SurveyClientTrait.html index 7a3e5b14..f2c787c6 100644 --- a/mcaptcha/survey/trait.SurveyClientTrait.html +++ b/mcaptcha/survey/trait.SurveyClientTrait.html @@ -1,40 +1,39 @@ -SurveyClientTrait in mcaptcha::survey - Rust -
    pub trait SurveyClientTrait {
    +SurveyClientTrait in mcaptcha::survey - Rust

    Trait SurveyClientTrait

    Source
    pub trait SurveyClientTrait {
         // Required methods
         fn start_job<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(Sender<()>, JoinHandle<()>), ServiceError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(Sender<()>, JoinHandle<()>), ServiceError>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait;
         fn schedule_upload_job<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait;
         fn is_online<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<bool, ServiceError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<bool, ServiceError>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait;
         fn register<'life0, 'async_trait>(
    -        &'life0 self
    -    ) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    +        &'life0 self,
    +    ) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait;
    -}

    Required Methods§

    source

    fn start_job<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(Sender<()>, JoinHandle<()>), ServiceError>> + Send + 'async_trait>>
    where +}

    Required Methods§

    Source

    fn start_job<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(Sender<()>, JoinHandle<()>), ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn schedule_upload_job<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where + 'life0: 'async_trait,

    Source

    fn schedule_upload_job<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn is_online<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<bool, ServiceError>> + Send + 'async_trait>>
    where + 'life0: 'async_trait,

    Source

    fn is_online<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<bool, ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn register<'life0, 'async_trait>( - &'life0 self -) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where + 'life0: 'async_trait,

    Source

    fn register<'life0, 'async_trait>( + &'life0 self, +) -> Pin<Box<dyn Future<Output = Result<(), ServiceError>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Implementors§

    \ No newline at end of file + 'life0: 'async_trait,

    Implementors§

    \ No newline at end of file diff --git a/mcaptcha/type.AppData.html b/mcaptcha/type.AppData.html index dbe5a15a..c087c5cc 100644 --- a/mcaptcha/type.AppData.html +++ b/mcaptcha/type.AppData.html @@ -1,2 +1 @@ -AppData in mcaptcha - Rust -

    Type Alias mcaptcha::AppData

    source ·
    pub type AppData = Data<ArcData>;

    Aliased Type§

    struct AppData(Arc<Arc<Data>>);

    Fields§

    §0: Arc<Arc<Data>>
    \ No newline at end of file +AppData in mcaptcha - Rust

    Type Alias AppData

    Source
    pub type AppData = Data<ArcData>;

    Aliased Type§

    pub struct AppData(/* private fields */);
    \ No newline at end of file diff --git a/mcaptcha/type.ArcData.html b/mcaptcha/type.ArcData.html index 7c2225e0..1e4c8ba6 100644 --- a/mcaptcha/type.ArcData.html +++ b/mcaptcha/type.ArcData.html @@ -1,6 +1 @@ -ArcData in mcaptcha - Rust -

    Type Alias mcaptcha::ArcData

    source ·
    pub type ArcData = Arc<Data>;

    Aliased Type§

    struct ArcData {
    -    ptr: NonNull<ArcInner<Data>>,
    -    phantom: PhantomData<ArcInner<Data>>,
    -    alloc: Global,
    -}

    Fields§

    §ptr: NonNull<ArcInner<Data>>§phantom: PhantomData<ArcInner<Data>>§alloc: Global
    \ No newline at end of file +ArcData in mcaptcha - Rust

    Type Alias ArcData

    Source
    pub type ArcData = Arc<Data>;

    Aliased Type§

    pub struct ArcData { /* private fields */ }
    \ No newline at end of file diff --git a/mcaptcha/widget/constant.PAGE.html b/mcaptcha/widget/constant.PAGE.html index 30148552..0f017221 100644 --- a/mcaptcha/widget/constant.PAGE.html +++ b/mcaptcha/widget/constant.PAGE.html @@ -1,2 +1 @@ -PAGE in mcaptcha::widget - Rust -

    Constant mcaptcha::widget::PAGE

    source ·
    const PAGE: &str = "mCaptcha CAPTCHA verification";
    \ No newline at end of file +PAGE in mcaptcha::widget - Rust

    Constant 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 3cd02337..9dd0b127 100644 --- a/mcaptcha/widget/constant.WIDGET_ROUTES.html +++ b/mcaptcha/widget/constant.WIDGET_ROUTES.html @@ -1,2 +1 @@ -WIDGET_ROUTES in mcaptcha::widget - Rust -

    Constant mcaptcha::widget::WIDGET_ROUTES

    source ·
    pub const WIDGET_ROUTES: Widget;
    \ No newline at end of file +WIDGET_ROUTES in mcaptcha::widget - Rust

    Constant 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 832285a6..136507e8 100644 --- a/mcaptcha/widget/fn.services.html +++ b/mcaptcha/widget/fn.services.html @@ -1,3 +1,2 @@ -services in mcaptcha::widget - Rust -

    Function mcaptcha::widget::services

    source ·
    pub fn services(cfg: &mut ServiceConfig)
    Expand description

    widget services

    +services in mcaptcha::widget - Rust

    Function services

    Source
    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 e4f29125..a67db615 100644 --- a/mcaptcha/widget/index.html +++ b/mcaptcha/widget/index.html @@ -1,3 +1,2 @@ -mcaptcha::widget - Rust -

    Module mcaptcha::widget

    source ·
    Expand description

    User facing CAPTCHA widget

    -

    Modules§

    Structs§

    Constants§

    Functions§

    \ No newline at end of file +mcaptcha::widget - Rust

    Module widget

    Source
    Expand description

    User facing CAPTCHA widget

    +

    Modules§

    routes

    Structs§

    INDEX_PAGE 🔒
    IndexPage
    show_widget
    render a client side widget for CAPTCHA verification

    Constants§

    PAGE 🔒
    WIDGET_ROUTES

    Functions§

    services
    widget services
    \ No newline at end of file diff --git a/mcaptcha/widget/routes/index.html b/mcaptcha/widget/routes/index.html index 6f6f47a8..83539f71 100644 --- a/mcaptcha/widget/routes/index.html +++ b/mcaptcha/widget/routes/index.html @@ -1,2 +1 @@ -mcaptcha::widget::routes - Rust -

    Module mcaptcha::widget::routes

    source ·

    Structs§

    \ No newline at end of file +mcaptcha::widget::routes - Rust

    Module routes

    Source

    Structs§

    Widget
    \ No newline at end of file diff --git a/mcaptcha/widget/routes/struct.Widget.html b/mcaptcha/widget/routes/struct.Widget.html index b5ab72b5..960d46e4 100644 --- a/mcaptcha/widget/routes/struct.Widget.html +++ b/mcaptcha/widget/routes/struct.Widget.html @@ -1,20 +1,34 @@ -Widget in mcaptcha::widget::routes - Rust -

    Struct mcaptcha::widget::routes::Widget

    source ·
    pub struct Widget {
    -    pub verification_widget: &'static str,
    -}

    Fields§

    §verification_widget: &'static str

    Implementations§

    source§

    impl Widget

    source

    pub const fn new() -> Self

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +Widget in mcaptcha::widget::routes - Rust

    Struct Widget

    Source
    pub struct Widget {
    +    pub verification_widget: &'static str,
    +}

    Fields§

    §verification_widget: &'static str

    Implementations§

    Source§

    impl Widget

    Source

    pub const fn new() -> Self

    Auto Trait Implementations§

    §

    impl Freeze for Widget

    §

    impl RefUnwindSafe for Widget

    §

    impl Send for Widget

    §

    impl Sync for Widget

    §

    impl Unpin for Widget

    §

    impl UnwindSafe for Widget

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/widget/struct.INDEX_PAGE.html b/mcaptcha/widget/struct.INDEX_PAGE.html index 2f481c73..f3fc5a25 100644 --- a/mcaptcha/widget/struct.INDEX_PAGE.html +++ b/mcaptcha/widget/struct.INDEX_PAGE.html @@ -1,23 +1,22 @@ -INDEX_PAGE in mcaptcha::widget - Rust -

    Struct mcaptcha::widget::INDEX_PAGE

    source ·
    struct INDEX_PAGE {
    -    __private_field: (),
    -}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    +INDEX_PAGE in mcaptcha::widget - Rust

    Struct INDEX_PAGE

    Source
    struct INDEX_PAGE {
    +    __private_field: (),
    +}

    Fields§

    §__private_field: ()

    Methods from Deref<Target = String>§

    1.7.0 · Source

    pub fn as_str(&self) -> &str

    Extracts a string slice containing the entire String.

    §Examples
    let s = String::from("foo");
     
     assert_eq!("foo", s.as_str());
    -
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    +
    1.0.0 · Source

    pub fn capacity(&self) -> usize

    Returns this String’s capacity, in bytes.

    §Examples
    let s = String::with_capacity(10);
     
     assert!(s.capacity() >= 10);
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    -

    The inverse of this method is from_utf8.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Returns a byte slice of this String’s contents.

    +

    The inverse of this method is from_utf8.

    §Examples
    let s = String::from("hello");
     
     assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
    -
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of this String, in bytes, not chars or +

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    @@ -27,15 +26,15 @@ length of the string.

    let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if this String has a length of zero, and false otherwise.

    §Examples
    let mut v = String::new();
     assert!(v.is_empty());
     
     v.push('a');
     assert!(!v.is_empty());
    -

    Methods from Deref<Target = str>§

    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the length of self.

    -

    This length is in bytes, not chars or graphemes. In other words, +

    Methods from Deref<Target = str>§

    1.0.0 · Source

    pub fn len(&self) -> usize

    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
    let len = "foo".len();
    @@ -43,14 +42,14 @@ 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);
    -
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    +
    1.0.0 · Source

    pub fn is_empty(&self) -> bool

    Returns true if self has a length of zero bytes.

    §Examples
    let s = "";
     assert!(s.is_empty());
     
     let s = "not empty";
     assert!(!s.is_empty());
    -
    1.9.0 · source

    pub fn is_char_boundary(&self, index: usize) -> bool

    Checks that index-th byte is the first byte in a UTF-8 code point +

    1.9.0 · Source

    pub fn is_char_boundary(&self, index: usize) -> bool

    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.

    @@ -67,7 +66,7 @@ considered to be boundaries.

    // third byte of `老` assert!(!s.is_char_boundary(8));
    -
    source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not exceeding index where is_char_boundary(x) is true.

    +
    Source

    pub fn floor_char_boundary(&self, index: usize) -> usize

    🔬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 @@ -82,9 +81,9 @@ includes 🧑 (person) instead.

    let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
    -
    source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    +
    Source

    pub fn ceil_char_boundary(&self, index: usize) -> usize

    🔬This is a nightly-only experimental API. (round_char_boundary)

    Finds the closest x not below index where is_char_boundary(x) is true.

    If index is greater than the length of the string, this returns the length of the string.

    -

    This method is the natural complement to floor_char_boundary. See that method +

    This method is the natural complement to floor_char_boundary. See that method for more details.

    §Examples
    #![feature(round_char_boundary)]
    @@ -95,12 +94,12 @@ for more details.

    let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
    -
    1.0.0 · source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

    +
    1.0.0 · Source

    pub fn as_bytes(&self) -> &[u8]

    Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

    §Examples
    let bytes = "bors".as_bytes();
     assert_eq!(b"bors", bytes);
    -
    1.20.0 · source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    Converts a mutable string slice to a mutable byte slice.

    +
    1.20.0 · Source

    pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

    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.

    @@ -126,25 +125,25 @@ before the borrow ends and the underlying str is used.

    } assert_eq!("🍔∈🌏", s);
    -
    1.0.0 · source

    pub fn as_ptr(&self) -> *const u8

    Converts a string slice to a raw pointer.

    +
    1.0.0 · Source

    pub fn as_ptr(&self) -> *const u8

    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
    let s = "Hello";
     let ptr = s.as_ptr();
    -
    1.36.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    Converts a mutable string slice to a raw pointer.

    +
    1.36.0 · Source

    pub fn as_mut_ptr(&mut self) -> *mut u8

    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 +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.

    -
    1.20.0 · source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a subslice of str.

    +
    1.20.0 · Source

    pub fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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("🗻∈🌏");
     
    @@ -156,13 +155,13 @@ modified in a way that it remains valid UTF-8.

    // out of bounds assert!(v.get(..42).is_none());
    -
    1.20.0 · source

    pub fn get_mut<I>( +

    1.20.0 · Source

    pub fn get_mut<I>( &mut self, - i: I -) -> Option<&mut <I as SliceIndex<str>>::Output>
    where - I: SliceIndex<str>,

    Returns a mutable subslice of str.

    + i: I, +) -> Option<&mut <I as SliceIndex<str>>::Output>
    where + I: SliceIndex<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.

    +None whenever equivalent indexing operation would panic.

    §Examples
    let mut v = String::from("hello");
     // correct length
    @@ -181,8 +180,8 @@ modified in a way that it remains valid UTF-8.

    assert_eq!(Some("HE"), s); } assert_eq!("HEllo", v);
    -
    1.20.0 · source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns an unchecked subslice of str.

    +
    1.20.0 · Source

    pub unsafe fn get_unchecked<I>(&self, i: I) -> &<I as SliceIndex<str>>::Output
    where + I: SliceIndex<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 @@ -201,11 +200,11 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
    -
    1.20.0 · source

    pub unsafe fn get_unchecked_mut<I>( +

    1.20.0 · Source

    pub unsafe fn get_unchecked_mut<I>( &mut self, - i: I -) -> &mut <I as SliceIndex<str>>::Output
    where - I: SliceIndex<str>,

    Returns a mutable, unchecked subslice of str.

    + i: I, +) -> &mut <I as SliceIndex<str>>::Output
    where + I: SliceIndex<str>,

    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 @@ -224,14 +223,14 @@ violate the invariants communicated by the str type.

    assert_eq!("∈", v.get_unchecked_mut(4..7)); assert_eq!("🌏", v.get_unchecked_mut(7..11)); }
    -
    1.0.0 · source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎Deprecated since 1.29.0: use get_unchecked(begin..end) instead

    Creates a string slice from another string slice, bypassing safety +

    1.0.0 · Source

    pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &str

    👎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:

    @@ -252,18 +251,18 @@ satisfied:

    unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
    -
    1.5.0 · source

    pub unsafe fn slice_mut_unchecked( +

    1.5.0 · Source

    pub unsafe fn slice_mut_unchecked( &mut self, - begin: usize, - end: usize -) -> &mut str

    👎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.

    + begin: usize, + end: usize, +) -> &mut str
    👎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.

    +slice_unchecked method.

    §Safety

    Callers of this function are responsible that three preconditions are satisfied:

    @@ -272,17 +271,17 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
  • -
    1.4.0 · source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divide one string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at(&self, mid: usize) -> (&str, &str)

    Divides 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. For a non-panicking -alternative see split_at_checked.

    +alternative see split_at_checked.

    §Examples
    let s = "Per Martin-Löf";
     
    @@ -290,16 +289,16 @@ alternative see assert_eq!("Per", first);
     assert_eq!(" Martin-Löf", last);
    -
    1.4.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divide one mutable string slice into two at an index.

    +
    1.4.0 · Source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut str, &mut str)

    Divides 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.

    +

    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. For a non-panicking -alternative see split_at_mut_checked.

    +alternative see split_at_mut_checked.

    §Examples
    let mut s = "Per Martin-Löf".to_string();
     {
    @@ -309,18 +308,16 @@ alternative see assert_eq!(" Martin-Löf", last);
     }
     assert_eq!("PER Martin-Löf", s);
    -
    source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one string slice into two at an index.

    +
    1.80.0 · Source

    pub fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)>

    Divides one string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked +

    To get mutable string slices instead, see the split_at_mut_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let s = "Per Martin-Löf";
    +
    let s = "Per Martin-Löf";
     
     let (first, last) = s.split_at_checked(3).unwrap();
     assert_eq!("Per", first);
    @@ -328,20 +325,18 @@ method.

    assert_eq!(None, s.split_at_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_checked(16)); // Beyond the string length
    -
    source

    pub fn split_at_mut_checked( +

    1.80.0 · Source

    pub fn split_at_mut_checked( &mut self, - mid: usize -) -> Option<(&mut str, &mut str)>

    🔬This is a nightly-only experimental API. (split_at_checked)

    Divide one mutable string slice into two at an index.

    + mid: usize, +) -> Option<(&mut str, &mut str)>

    Divides one mutable string slice into two at an index.

    The argument, mid, should be a valid byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point. The method returns None if that’s not the case.

    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_checked method.

    +

    To get immutable string slices instead, see the split_at_checked method.

    §Examples
    -
    #![feature(split_at_checked)]
    -
    -let mut s = "Per Martin-Löf".to_string();
    +
    let mut s = "Per Martin-Löf".to_string();
     if let Some((first, last)) = s.split_at_mut_checked(3) {
         first.make_ascii_uppercase();
         assert_eq!("PER", first);
    @@ -351,10 +346,10 @@ and from mid to the end of the string slice.

    assert_eq!(None, s.split_at_mut_checked(13)); // Inside “ö” assert_eq!(None, s.split_at_mut_checked(16)); // Beyond the string length
    -
    1.0.0 · source

    pub fn chars(&self) -> Chars<'_>

    Returns an iterator over the chars of a string slice.

    +
    1.0.0 · Source

    pub fn chars(&self) -> Chars<'_>

    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.

    @@ -377,7 +372,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̆";
     
    @@ -387,12 +382,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());
    -
    1.0.0 · source

    pub fn char_indices(&self) -> CharIndices<'_>

    Returns an iterator over the chars of a string slice, and their +

    1.0.0 · Source

    pub fn char_indices(&self) -> CharIndices<'_>

    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:

    @@ -413,7 +408,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";
     
    @@ -427,7 +422,7 @@ second.

    assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
    -
    1.0.0 · source

    pub fn bytes(&self) -> Bytes<'_>

    An iterator over the bytes of a string slice.

    +
    1.0.0 · Source

    pub fn bytes(&self) -> Bytes<'_>

    Returns 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
    @@ -439,12 +434,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());
    -
    1.1.0 · source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    Splits a string slice by whitespace.

    +
    1.1.0 · Source

    pub fn split_whitespace(&self) -> SplitWhitespace<'_>

    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:

    @@ -469,10 +464,11 @@ instead, use
    assert_eq!("".split_whitespace().next(), None);
     assert_eq!("   ".split_whitespace().next(), None);
    -
    1.34.0 · source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    Splits a string slice by ASCII whitespace.

    +
    1.34.0 · Source

    pub fn split_ascii_whitespace(&self) -> SplitAsciiWhitespace<'_>

    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.

    +

    This uses the same definition as char::is_ascii_whitespace. +To split by Unicode Whitespace instead, use split_whitespace.

    §Examples

    Basic usage:

    @@ -483,7 +479,8 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!(Some("words"), iter.next()); assert_eq!(None, iter.next());
    -

    All kinds of ASCII whitespace are considered:

    +

    Various kinds of ASCII whitespace are considered +(see char::is_ascii_whitespace):

    let mut iter = " Mary   had\ta little  \n\t lamb".split_ascii_whitespace();
     assert_eq!(Some("Mary"), iter.next());
    @@ -497,7 +494,7 @@ the original string slice, separated by any amount of ASCII whitespace.

    assert_eq!("".split_ascii_whitespace().next(), None);
     assert_eq!("   ".split_ascii_whitespace().next(), None);
    -
    1.0.0 · source

    pub fn lines(&self) -> Lines<'_>

    An iterator over the lines of a string, as string slices.

    +
    1.0.0 · Source

    pub fn lines(&self) -> Lines<'_>

    Returns an iterator over the lines of a string, as string slices.

    Lines are split at line endings that are either newlines (\n) or sequences of a carriage return followed by a line feed (\r\n).

    Line terminators are not included in the lines returned by the iterator.

    @@ -531,8 +528,9 @@ without a final line ending.

    assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
    -
    1.0.0 · source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    An iterator over the lines of a string.

    -
    1.8.0 · source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded as UTF-16.

    +
    1.0.0 · Source

    pub fn lines_any(&self) -> LinesAny<'_>

    👎Deprecated since 1.4.0: use lines() instead now

    Returns an iterator over the lines of a string.

    +
    1.8.0 · Source

    pub fn encode_utf16(&self) -> EncodeUtf16<'_>

    Returns an iterator of u16 over the string encoded +as native endian UTF-16 (without byte-order mark).

    §Examples
    let text = "Zażółć gęślą jaźń";
     
    @@ -540,45 +538,55 @@ without a final line ending.

    let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
    -
    1.0.0 · source

    pub fn contains<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a sub-slice of +

    1.0.0 · Source

    pub fn contains<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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
    let bananas = "bananas";
     
     assert!(bananas.contains("nana"));
     assert!(!bananas.contains("apples"));
    -
    1.0.0 · source

    pub fn starts_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>,

    Returns true if the given pattern matches a prefix of this +

    1.0.0 · Source

    pub fn starts_with<P>(&self, pat: P) -> bool
    where + P: Pattern,

    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 -function or closure that determines if a character matches.

    +

    The pattern can be a &str, in which case this function will return true if +the &str is a prefix of this string slice.

    +

    The pattern can also be a char, a slice of chars, or a +function or closure that determines if a character matches. +These will only be checked against the first character of this string slice. +Look at the second example below regarding behavior for slices of chars.

    §Examples
    let bananas = "bananas";
     
     assert!(bananas.starts_with("bana"));
     assert!(!bananas.starts_with("nana"));
    -
    1.0.0 · source

    pub fn ends_with<'a, P>(&'a self, pat: P) -> bool
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns true if the given pattern matches a suffix of this + +

    let bananas = "bananas";
    +
    +// Note that both of these assert successfully.
    +assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
    +assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
    +
    1.0.0 · Source

    pub fn ends_with<P>(&self, pat: P) -> bool
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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
    let bananas = "bananas";
     
     assert!(bananas.ends_with("anas"));
     assert!(!bananas.ends_with("nana"));
    -
    1.0.0 · source

    pub fn find<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>,

    Returns the byte index of the first character of this string slice that +

    1.0.0 · Source

    pub fn find<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern,

    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:

    @@ -602,12 +610,12 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
    -
    1.0.0 · source

    pub fn rfind<'a, P>(&'a self, pat: P) -> Option<usize>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns the byte index for the first character of the last match of the pattern in +

    1.0.0 · Source

    pub fn rfind<P>(&self, pat: P) -> Option<usize>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns the byte index for the first character of the last 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:

    @@ -629,17 +637,19 @@ function or closure that determines if a character matches.

    let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
    -
    1.0.0 · source

    pub fn split<'a, P>(&'a self, pat: P) -> Split<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of this string slice, separated by +

    1.0.0 · Source

    pub fn split<P>(&self, pat: P) -> Split<'_, P>
    where + P: Pattern,

    Returns 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.

    +

    If there are no matches the full string slice is returned as the only +item in the iterator.

    §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:

    @@ -655,6 +665,9 @@ from a forward search, the let v: Vec<&str> = "lion::tiger::leopard".split("::").collect(); assert_eq!(v, ["lion", "tiger", "leopard"]); +let v: Vec<&str> = "AABBCC".split("DD").collect(); +assert_eq!(v, ["AABBCC"]); + let v: Vec<&str> = "abc1def2ghi".split(char::is_numeric).collect(); assert_eq!(v, ["abc", "def", "ghi"]); @@ -702,13 +715,13 @@ 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.

    -
    1.51.0 · source

    pub fn split_inclusive<'a, P>(&'a self, pat: P) -> SplitInclusive<'a, P>
    where - P: Pattern<'a>,

    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 +

    Use split_whitespace for this behavior.

    +
    1.51.0 · Source

    pub fn split_inclusive<P>(&self, pat: P) -> SplitInclusive<'_, P>
    where + P: Pattern,

    Returns 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 function or closure that determines if a character matches.

    §Examples
    let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
    @@ -721,17 +734,17 @@ 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"]);
    -
    1.0.0 · source

    pub fn rsplit<'a, P>(&'a self, pat: P) -> RSplit<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.0.0 · Source

    pub fn rsplit<P>(&self, pat: P) -> RSplit<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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:

    @@ -750,21 +763,21 @@ search yields the same elements.

    let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "def", "abc"]);
    -
    1.0.0 · source

    pub fn split_terminator<'a, P>(&'a self, pat: P) -> SplitTerminator<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.0.0 · Source

    pub fn split_terminator<P>(&self, pat: P) -> SplitTerminator<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "A.B.".split_terminator('.').collect();
     assert_eq!(v, ["A", "B"]);
    @@ -774,13 +787,13 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
     assert_eq!(v, ["A", "B", "C", "D"]);
    -
    1.0.0 · source

    pub fn rsplit_terminator<'a, P>(&'a self, pat: P) -> RSplitTerminator<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over substrings of self, separated by characters +

    1.0.0 · Source

    pub fn rsplit_terminator<P>(&self, pat: P) -> RSplitTerminator<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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.

    @@ -788,7 +801,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();
    @@ -799,17 +812,17 @@ used.

    let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
    -
    1.0.0 · source

    pub fn splitn<'a, P>(&'a self, n: usize, pat: P) -> SplitN<'a, P>
    where - P: Pattern<'a>,

    An iterator over substrings of the given string slice, separated by a -pattern, restricted to returning at most n items.

    +
    1.0.0 · Source

    pub fn splitn<P>(&self, n: usize, pat: P) -> SplitN<'_, P>
    where + P: Pattern,

    Returns 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:

    @@ -829,19 +842,19 @@ used.

    let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["abc", "defXghi"]);
    -
    1.0.0 · source

    pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'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.

    +
    1.0.0 · Source

    pub fn rsplitn<P>(&self, n: usize, pat: P) -> RSplitN<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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:

    @@ -857,69 +870,69 @@ efficient to support.

    let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
     assert_eq!(v, ["ghi", "abc1def"]);
    -
    1.52.0 · source

    pub fn split_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>,

    Splits the string on the first occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn split_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern,

    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=".split_once('='), Some(("cfg", "")));
     assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
     assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
    -
    1.52.0 · source

    pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Splits the string on the last occurrence of the specified delimiter and +

    1.52.0 · Source

    pub fn rsplit_once<P>(&self, delimiter: P) -> Option<(&str, &str)>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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")));
    -
    1.2.0 · source

    pub fn matches<'a, P>(&'a self, pat: P) -> Matches<'a, P>
    where - P: Pattern<'a>,

    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 +

    1.2.0 · Source

    pub fn matches<P>(&self, pat: P) -> Matches<'_, P>
    where + P: Pattern,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
     assert_eq!(v, ["1", "2", "3"]);
    -
    1.2.0 · source

    pub fn rmatches<'a, P>(&'a self, pat: P) -> RMatches<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    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 +

    1.2.0 · Source

    pub fn rmatches<P>(&self, pat: P) -> RMatches<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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 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
    let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
     assert_eq!(v, ["abc", "abc", "abc"]);
     
     let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect();
     assert_eq!(v, ["3", "2", "1"]);
    -
    1.5.0 · source

    pub fn match_indices<'a, P>(&'a self, pat: P) -> MatchIndices<'a, P>
    where - P: Pattern<'a>,

    An iterator over the disjoint matches of a pattern within this string +

    1.5.0 · Source

    pub fn match_indices<P>(&self, pat: P) -> MatchIndices<'_, P>
    where + P: Pattern,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
     assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);
    @@ -929,19 +942,19 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
     assert_eq!(v, [(0, "aba")]); // only the first `aba`
    -
    1.5.0 · source

    pub fn rmatch_indices<'a, P>(&'a self, pat: P) -> RMatchIndices<'a, P>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    An iterator over the disjoint matches of a pattern within self, +

    1.5.0 · Source

    pub fn rmatch_indices<P>(&self, pat: P) -> RMatchIndices<'_, P>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    Returns 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
    let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
     assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);
    @@ -951,14 +964,14 @@ search yields the same elements.

    let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
    -
    1.0.0 · source

    pub fn trim(&self) -> &str

    Returns a string slice with leading and trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim(&self) -> &str

    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, which includes newlines.

    §Examples
    let s = "\n Hello\tworld\t\n";
     
     assert_eq!("Hello\tworld", s.trim());
    -
    1.30.0 · source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_start(&self) -> &str

    Returns a string slice with leading whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -978,7 +991,7 @@ Arabic or Hebrew, this will be the right side.

    let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
    -
    1.30.0 · source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    +
    1.30.0 · Source

    pub fn trim_end(&self) -> &str

    Returns a string slice with trailing whitespace removed.

    ‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space, which includes newlines.

    §Text directionality
    @@ -998,7 +1011,7 @@ Arabic or Hebrew, this will be the left side.

    let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_left(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_start

    Returns a string slice with leading whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_left(&self) -> &str

    👎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
    @@ -1019,7 +1032,7 @@ the right side, not the left.

    let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
    -
    1.0.0 · source

    pub fn trim_right(&self) -> &str

    👎Deprecated since 1.33.0: superseded by trim_end

    Returns a string slice with trailing whitespace removed.

    +
    1.0.0 · Source

    pub fn trim_right(&self) -> &str

    👎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
    @@ -1040,11 +1053,11 @@ the left side, not the right.

    let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
    -
    1.0.0 · source

    pub fn trim_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: DoubleEndedSearcher<'a>,

    Returns a string slice with all prefixes and suffixes that match a +

    1.0.0 · Source

    pub fn trim_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> DoubleEndedSearcher<'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:

    @@ -1057,10 +1070,10 @@ 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");
    -
    1.30.0 · source

    pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    Returns a string slice with all prefixes that match a pattern +

    1.30.0 · Source

    pub fn trim_start_matches<P>(&self, pat: P) -> &str
    where + P: 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 @@ -1073,41 +1086,82 @@ Arabic or Hebrew, this will be the right side.

    let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
    -
    1.45.0 · source

    pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str>
    where - P: Pattern<'a>,

    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.

    +
    1.45.0 · Source

    pub fn strip_prefix<P>(&self, prefix: P) -> Option<&str>
    where + P: Pattern,

    Returns a string slice with the prefix removed.

    +

    If the string starts with the pattern prefix, returns the 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"));
    -
    1.45.0 · source

    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with the suffix removed.

    +
    1.45.0 · Source

    pub fn strip_suffix<P>(&self, suffix: P) -> Option<&str>
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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.

    +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"));
    -
    1.30.0 · source

    pub fn trim_end_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    Returns a string slice with all suffixes that match a pattern +

    Source

    pub fn trim_prefix<P>(&self, prefix: P) -> &str
    where + P: Pattern,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional prefix removed.

    +

    If the string starts with the pattern prefix, returns the substring after the prefix. +Unlike strip_prefix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not start with prefix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Prefix present - removes it
    +assert_eq!("foo:bar".trim_prefix("foo:"), "bar");
    +assert_eq!("foofoo".trim_prefix("foo"), "foo");
    +
    +// Prefix absent - returns original string
    +assert_eq!("foo:bar".trim_prefix("bar"), "foo:bar");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    Source

    pub fn trim_suffix<P>(&self, suffix: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    🔬This is a nightly-only experimental API. (trim_prefix_suffix)

    Returns a string slice with the optional suffix removed.

    +

    If the string ends with the pattern suffix, returns the substring before the suffix. +Unlike strip_suffix, this method always returns &str for easy method chaining, +instead of returning Option<&str>.

    +

    If the string does not end with suffix, returns the original string unchanged.

    +

    The pattern can be a &str, char, a slice of chars, or a +function or closure that determines if a character matches.

    +
    §Examples
    +
    #![feature(trim_prefix_suffix)]
    +
    +// Suffix present - removes it
    +assert_eq!("bar:foo".trim_suffix(":foo"), "bar");
    +assert_eq!("foofoo".trim_suffix("foo"), "foo");
    +
    +// Suffix absent - returns original string
    +assert_eq!("bar:foo".trim_suffix("bar"), "bar:foo");
    +
    +// Method chaining example
    +assert_eq!("<https://example.com/>".trim_prefix('<').trim_suffix('>'), "https://example.com/");
    +
    1.30.0 · Source

    pub fn trim_end_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    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");
    @@ -1118,34 +1172,34 @@ 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");
    -
    1.0.0 · source

    pub fn trim_left_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>,

    👎Deprecated since 1.33.0: superseded by trim_start_matches

    Returns a string slice with all prefixes that match a pattern +

    1.0.0 · Source

    pub fn trim_left_matches<P>(&self, pat: P) -> &str
    where + P: 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
    assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
     assert_eq!("123foo1bar123".trim_left_matches(char::is_numeric), "foo1bar123");
     
     let x: &[_] = &['1', '2'];
     assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
    -
    1.0.0 · source

    pub fn trim_right_matches<'a, P>(&'a self, pat: P) -> &'a str
    where - P: Pattern<'a>, - <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>,

    👎Deprecated since 1.33.0: superseded by trim_end_matches

    Returns a string slice with all suffixes that match a pattern +

    1.0.0 · Source

    pub fn trim_right_matches<P>(&self, pat: P) -> &str
    where + P: Pattern, + <P as Pattern>::Searcher<'a>: for<'a> ReverseSearcher<'a>,

    👎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");
    @@ -1156,19 +1210,19 @@ 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");
    -
    1.0.0 · source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where - F: FromStr,

    Parses this string slice into another type.

    +
    1.0.0 · Source

    pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
    where + F: FromStr,

    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

    +
    §Examples
    +

    Basic usage:

    let four: u32 = "4".parse().unwrap();
     
    @@ -1183,76 +1237,74 @@ the desired type.

    let nope = "j".parse::<u32>();
     
     assert!(nope.is_err());
    -
    1.23.0 · source

    pub fn is_ascii(&self) -> bool

    Checks if all characters in this string are within the ASCII range.

    -
    §Examples
    +
    1.23.0 · Source

    pub fn is_ascii(&self) -> bool

    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());
    -
    source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice -of ASCII characters, otherwise returns None.

    -
    1.23.0 · source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    Checks that two strings are an ASCII case-insensitive match.

    +
    Source

    pub fn as_ascii(&self) -> Option<&[AsciiChar]>

    🔬This is a nightly-only experimental API. (ascii_char)

    If this string slice is_ascii, returns it as a slice +of ASCII characters, otherwise returns None.

    +
    Source

    pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

    🔬This is a nightly-only experimental API. (ascii_char)

    Converts this string slice into a slice of ASCII characters, +without checking whether they are valid.

    +
    §Safety
    +

    Every character in this string must be ASCII, or else this is UB.

    +
    1.23.0 · Source

    pub fn eq_ignore_ascii_case(&self, other: &str) -> bool

    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"));
    -
    1.23.0 · source

    pub fn make_ascii_uppercase(&mut self)

    Converts this string to its ASCII upper case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_uppercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("Grüße, Jürgen ❤");
     
     s.make_ascii_uppercase();
     
     assert_eq!("GRüßE, JüRGEN ❤", s);
    -
    1.23.0 · source

    pub fn make_ascii_lowercase(&mut self)

    Converts this string to its ASCII lower case equivalent in-place.

    +
    1.23.0 · Source

    pub fn make_ascii_lowercase(&mut self)

    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
    +
    §Examples
    let mut s = String::from("GRÜßE, JÜRGEN ❤");
     
     s.make_ascii_lowercase();
     
     assert_eq!("grÜße, jÜrgen ❤", s);
    -
    source

    pub fn trim_ascii_start(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_start(&self) -> &str

    Returns a string slice with leading ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!(" \t \u{3000}hello world\n".trim_ascii_start(), "\u{3000}hello world\n");
     assert_eq!("  ".trim_ascii_start(), "");
     assert_eq!("".trim_ascii_start(), "");
    -
    source

    pub fn trim_ascii_end(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with trailing ASCII whitespace removed.

    +
    1.80.0 · Source

    pub fn trim_ascii_end(&self) -> &str

    Returns a string slice with trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\u{3000}\n ".trim_ascii_end(), "\r hello world\u{3000}");
     assert_eq!("  ".trim_ascii_end(), "");
     assert_eq!("".trim_ascii_end(), "");
    -
    source

    pub fn trim_ascii(&self) -> &str

    🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

    Returns a string slice with leading and trailing ASCII whitespace +

    1.80.0 · Source

    pub fn trim_ascii(&self) -> &str

    Returns a string slice with leading and trailing ASCII whitespace removed.

    ‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

    -
    §Examples
    -
    #![feature(byte_slice_trim_ascii)]
    -
    -assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
    +u8::is_ascii_whitespace.

    +
    §Examples
    +
    assert_eq!("\r hello world\n ".trim_ascii(), "hello world");
     assert_eq!("  ".trim_ascii(), "");
     assert_eq!("".trim_ascii(), "");
    -
    1.34.0 · source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Return an iterator that escapes each char in self with char::escape_debug.

    +
    1.34.0 · Source

    pub fn escape_debug(&self) -> EscapeDebug<'_>

    Returns 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() {
    @@ -1268,8 +1320,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
    -
    1.34.0 · source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Return an iterator that escapes each char in self with char::escape_default.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_default(&self) -> EscapeDefault<'_>

    Returns an iterator that escapes each char in self with char::escape_default.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_default() {
    @@ -1285,8 +1337,8 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
    -
    1.34.0 · source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Return an iterator that escapes each char in self with char::escape_unicode.

    -
    §Examples
    +
    1.34.0 · Source

    pub fn escape_unicode(&self) -> EscapeUnicode<'_>

    Returns an iterator that escapes each char in self with char::escape_unicode.

    +
    §Examples

    As an iterator:

    for c in "❤\n!".escape_unicode() {
    @@ -1302,45 +1354,65 @@ escaped.

    Using to_string:

    assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
    -
    1.0.0 · source

    pub fn replace<'a, P>(&'a self, from: P, to: &str) -> String
    where - P: Pattern<'a>,

    Replaces all matches of a pattern with another string.

    -

    replace creates a new String, and copies the data from this string slice into it. +

    Source

    pub fn substr_range(&self, substr: &str) -> Option<Range<usize>>

    🔬This is a nightly-only experimental API. (substr_range)

    Returns the range that a substring points to.

    +

    Returns None if substr does not point within self.

    +

    Unlike str::find, this does not search through the string. +Instead, it uses pointer arithmetic to find where in the string +substr is derived from.

    +

    This is useful for extending str::split and similar methods.

    +

    Note that this method may return false positives (typically either +Some(0..0) or Some(self.len()..self.len())) if substr is a +zero-length str that points at the beginning or end of another, +independent, str.

    +
    §Examples
    +
    #![feature(substr_range)]
    +
    +let data = "a, b, b, a";
    +let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
    +
    +assert_eq!(iter.next(), Some(0..1));
    +assert_eq!(iter.next(), Some(3..4));
    +assert_eq!(iter.next(), Some(6..7));
    +assert_eq!(iter.next(), Some(9..10));
    +
    Source

    pub fn as_str(&self) -> &str

    🔬This is a nightly-only experimental API. (str_as_str)

    Returns the same string as a string slice &str.

    +

    This method is redundant when used directly on &str, but +it helps dereferencing other string-like types to string slices, +for example references to Box<str> or Arc<str>.

    +
    1.0.0 · Source

    pub fn replace<P>(&self, from: P, to: &str) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "this is old";
     
     assert_eq!("this is new", s.replace("old", "new"));
     assert_eq!("than an old", s.replace("is", "an"));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replace("cookie monster", "little lamb"));
    -
    1.16.0 · source

    pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> String
    where - P: Pattern<'a>,

    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. +

    1.16.0 · Source

    pub fn replacen<P>(&self, pat: P, to: &str, count: usize) -> String
    where + P: Pattern,

    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
    -

    Basic usage:

    - +
    §Examples
    let s = "foo foo 123 foo";
     assert_eq!("new new 123 foo", s.replacen("foo", "new", 2));
     assert_eq!("faa fao 123 foo", s.replacen('o', "a", 3));
     assert_eq!("foo foo new23 foo", s.replacen(char::is_numeric, "new", 1));
    -

    When the pattern doesn’t match, it returns this string slice as String:

    +

    When the pattern doesn’t match, it returns this string slice as String:

    let s = "this is old";
     assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
    -
    1.2.0 · source

    pub fn to_lowercase(&self) -> String

    Returns the lowercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_lowercase(&self) -> 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";
    @@ -1361,13 +1433,13 @@ parameter in-place.

    let new_year = "农历新年";
     
     assert_eq!(new_year, new_year.to_lowercase());
    -
    1.2.0 · source

    pub fn to_uppercase(&self) -> String

    Returns the uppercase equivalent of this string slice, as a new String.

    +
    1.2.0 · Source

    pub fn to_uppercase(&self) -> 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";
    @@ -1383,10 +1455,10 @@ parameter in-place.

    let s = "tschüß";
     
     assert_eq!("TSCHÜSS", s.to_uppercase());
    -
    1.16.0 · source

    pub fn repeat(&self, n: usize) -> String

    Creates a new String by repeating a string n times.

    +
    1.16.0 · Source

    pub fn repeat(&self, n: usize) -> String

    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"));
    @@ -1394,42 +1466,59 @@ parameter in-place.

    // this will panic at runtime
     let huge = "0123456789abcdef".repeat(usize::MAX);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_uppercase(&self) -> String

    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());
    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> String

    Returns a copy of this string where each character is mapped to its +

    1.23.0 · Source

    pub fn to_ascii_lowercase(&self) -> String

    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§

    source§

    impl Deref for INDEX_PAGE

    §

    type Target = String

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &String

    Dereferences the value.
    source§

    impl LazyStatic for INDEX_PAGE

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    Source§

    impl Deref for INDEX_PAGE

    Source§

    type Target = String

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &String

    Dereferences the value.
    Source§

    impl LazyStatic for INDEX_PAGE

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<P, T> Receiver for P
    where + P: Deref<Target = T> + ?Sized, + T: ?Sized,

    Source§

    type Target = T

    🔬This is a nightly-only experimental API. (arbitrary_self_types)
    The target type on which the method may be called.
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/mcaptcha/widget/struct.IndexPage.html b/mcaptcha/widget/struct.IndexPage.html index 9cdba4b3..fe182497 100644 --- a/mcaptcha/widget/struct.IndexPage.html +++ b/mcaptcha/widget/struct.IndexPage.html @@ -1,19 +1,36 @@ -IndexPage in mcaptcha::widget - Rust -

    Struct mcaptcha::widget::IndexPage

    source ·
    pub struct IndexPage;

    Implementations§

    source§

    impl IndexPage

    source

    fn new() -> Self

    Trait Implementations§

    source§

    impl Clone for IndexPage

    source§

    fn clone(&self) -> IndexPage

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl TemplateOnce for IndexPage

    source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +IndexPage in mcaptcha::widget - Rust

    Struct IndexPage

    Source
    pub struct IndexPage;

    Implementations§

    Source§

    impl IndexPage

    Source

    fn new() -> Self

    Trait Implementations§

    Source§

    impl Clone for IndexPage

    Source§

    fn clone(&self) -> IndexPage

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    Source§

    impl TemplateOnce for IndexPage

    Source§

    fn render_once(self) -> RenderResult

    Render the template and return the rendering result as RenderResult Read more
    Source§

    fn render_once_to(self, __sf_buf: &mut Buffer) -> Result<(), RenderError>

    Render the template and append the result to buf. Read more
    Source§

    impl Sealed for IndexPage

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    Source§

    unsafe fn clone_to_uninit(&self, dest: *mut u8)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dest. Read more
    §

    impl<T> Container<T> for T
    where + T: Clone,

    §

    type Iter = Once<T>

    An iterator over the items within this container, by value.
    §

    fn get_iter(&self) -> <T as Container<T>>::Iter

    Iterate over the elements of the container (using internal iteration because GATs are unstable).
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where + T: Clone,

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    Source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    §

    impl<T> OrderedContainer<T> for T
    where + T: Clone,

    \ No newline at end of file diff --git a/mcaptcha/widget/struct.show_widget.html b/mcaptcha/widget/struct.show_widget.html index c069b052..3be028db 100644 --- a/mcaptcha/widget/struct.show_widget.html +++ b/mcaptcha/widget/struct.show_widget.html @@ -1,19 +1,33 @@ -show_widget in mcaptcha::widget - Rust -
    pub struct show_widget;
    Expand description

    render a client side widget for CAPTCHA verification

    -

    Trait Implementations§

    source§

    impl HttpServiceFactory for show_widget

    source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +show_widget in mcaptcha::widget - Rust

    Struct show_widget

    Source
    pub struct show_widget;
    Expand description

    render a client side widget for CAPTCHA verification

    +

    Trait Implementations§

    Source§

    impl HttpServiceFactory for show_widget

    Source§

    fn register(self, __config: &mut AppService)

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Chain<T> for T

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    Source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    Source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where - S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +From<T> for U chooses to do.

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> PolicyExt for T
    where + T: ?Sized,

    §

    fn and<P, B, E>(self, other: P) -> And<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] only if self and other return +Action::Follow. Read more
    §

    fn or<P, B, E>(self, other: P) -> Or<T, P>
    where + T: Policy<B, E>, + P: Policy<B, E>,

    Create a new Policy that returns [Action::Follow] if either self or other returns +Action::Follow. Read more
    Source§

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    Source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    Source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    Source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    Source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    Source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/search-index.js b/search-index.js index cc2ad7e8..567bda17 100644 --- a/search-index.js +++ b/search-index.js @@ -1,8 +1,4 @@ -var searchIndex = new Map(JSON.parse('[\ -["db_core",{"doc":"mCaptcha database operations","t":"FFKFFFPEFGKFFFFFFFFPMMMNMMMMMMONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNOOOMMNNNNNNNNNNMMMMOOONNNNNNNNNNNNNNNCOOOOOOMNNNNNNNNNNNNNNNCMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMMMMMMMOOOOOONNNNNNNNNNNNNNNOOOMOOOOCOMCOMMMMOONNNNNNNNNNNNNNNOMMCOOONNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMOOOOMONNNNNNNNNNNNNNNOOXPIPPGPIPPPPPPPNNNNNNNNNNNNRKKKKRMMMSSH","n":["AddNotification","Captcha","CloneSPDatabase","CreateCaptcha","CreatePerformanceAnalytics","EasyCaptcha","Email","GetConnection","Level","Login","MCDatabase","NameHash","Notification","PerformanceAnalytics","Register","Secret","StatsUnixTimestamp","TrafficPattern","UpdateEmail","Username","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","avg_traffic","borrow","borrow","borrow","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","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","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","clone_into","clone_into","clone_into","config_fetches","config_id","confirms","create_captcha","create_notification","default","default","default","default","default","default","default","default","default","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dev","difficulty_factor","difficulty_factor","difficulty_factor","duration","duration","email","email_exists","eq","eq","eq","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","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","hash","heading","heading","id","id","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","key","key","key","mark_notification_read","message","message","name","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","serialize","serialize","serialize","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","tests","time","time","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","to_owned","to_owned","to_owned","traffic_pattern","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_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","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","type_id","type_id","type_id","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","username","username","username","username_exists","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","worker_type","worker_type","async_trait","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","DBError","DBResult","EmailTaken","Err","NotificationNotFound","Ok","SecretTaken","TrafficPatternNotFound","UsernameTaken","borrow","borrow_mut","fmt","fmt","from","into","source","to_string","try_from","try_into","type_id","vzip","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","LEVELS","TRAFFIC_PATTERN","database_works"],"q":[[0,"db_core"],[354,"db_core::dev"],[355,"db_core::errors"],[381,"db_core::ops"],[390,"db_core::tests"],[393,"core::future::future"],[394,"alloc::boxed"],[395,"core::pin"],[396,"core::option"],[397,"core::result"],[398,"serde::de"],[399,"core::fmt"],[400,"core::fmt"],[401,"core::any"],[402,"core::error"],[403,"alloc::string"]],"d":["Data required to add notification","Data representing a captcha","Trait to clone MCDatabase","data required to create new captcha","Log Proof-of-Work CAPTCHA performance analytics","Represents Easy captcha configuration","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","Proof-of-Work CAPTCHA performance analytics","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","record PoW timing","Get publishing status of pow analytics for captcha ID/ …","Create psuedo ID against campaign ID to publish analytics","Delete all records for campaign","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","average traffic of user’s website","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","traffic 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","captcha description","description of the captcha","description of the captcha","","","","","","","","","","","","","","","","useful imports for supporting a new database","difficulty factor for which the proof was generated","","difficulty factor for which the proof was generated","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","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch 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.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","notification sender","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","log ID","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).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","captcha key/sitekey","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","message 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","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","Test utilities","time taken to generate proof","time taken to generate proof","who is the notification addressed to?","","","","","","","","","","","","","","","","traffic pattern of easy captcha","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","Owner of the captcha configuration","check if username exists","","","","","","","","","","","","","","","","","worker/client type: wasm, javascript, python, etc.","worker/client type: wasm, javascript, python, etc.","","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","Contains the error value","Notification not found","Contains the success value","Secret is taken","Traffic pattern not found","Username is taken","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","database connection type","Create database 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","levels for complex captcha config","easy traffic pattern","test all database functions"],"i":[0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,14,1,1,1,1,1,1,1,1,1,1,8,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,8,1,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,24,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,17,22,17,1,1,9,16,17,18,19,20,8,21,22,23,1,1,1,1,20,21,22,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,0,9,3,16,21,22,12,1,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,0,1,1,1,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,19,1,1,1,1,1,1,1,1,1,1,1,1,12,15,18,19,16,18,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,20,21,22,1,18,19,18,13,0,8,1,0,18,1,1,1,1,12,23,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,17,1,1,0,9,16,19,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,20,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,1,1,1,1,1,1,1,12,13,15,20,1,3,12,13,14,15,9,3,16,17,18,19,20,8,21,22,23,9,16,0,36,0,36,36,0,36,0,36,44,36,44,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,42,0,0,0,0,40,40,42,43,0,0,0],"f":"````````````````````{{bdd{h{f}}}{{n{{l{j}}}}}}{{bddA`}{{n{{l{j}}}}}}{{bdAb}{{n{{l{j}}}}}}{{bd}{{n{{l{j}}}}}}00{{bdAdAd}{{n{{l{j}}}}}}{{bAd}{{n{{l{j}}}}}}22`{ce{}{}}00000000000000000000000000000`{{b{Af{d}}d}{{n{{l{j}}}}}}{AhAh}{AjAj}{AlAl}{AnAn}{AbAb}{ff}{B`B`}{BbBb}{BdBd}{BfBf}{BhBh}{A`A`}{BjBj}{BlBl}{BnBn}{C`{{l{b}}}}{{ce}Cb{}{}}00000000000000```{{bdBj}{{n{{l{j}}}}}}{{bBf}{{n{{l{j}}}}}}{{}Ab}{{}B`}{{}Bb}{{}Bd}{{}Bf}{{}Bh}{{}A`}{{}Bj}{{}Bl}{{}Bn}{{bdd}{{n{{l{j}}}}}}00{{bd}{{n{{l{j}}}}}}```{c{{Cd{Ah}}}Cf}{c{{Cd{Aj}}}Cf}{c{{Cd{Al}}}Cf}{c{{Cd{An}}}Cf}{c{{Cd{Ab}}}Cf}{c{{Cd{f}}}Cf}{c{{Cd{B`}}}Cf}{c{{Cd{Bb}}}Cf}{c{{Cd{Bd}}}Cf}{c{{Cd{Bf}}}Cf}{c{{Cd{Bh}}}Cf}{c{{Cd{A`}}}Cf}{c{{Cd{Bj}}}Cf}{c{{Cd{Bl}}}Cf}{c{{Cd{Bn}}}Cf}```````?{{AhAh}Ch}{{AjAj}Ch}{{AlAl}Ch}{{AnAn}Ch}{{AbAb}Ch}{{ff}Ch}{{B`B`}Ch}{{BbBb}Ch}{{BdBd}Ch}{{BfBf}Ch}{{BhBh}Ch}{{A`A`}Ch}{{BjBj}Ch}{{BlBl}Ch}{{BnBn}Ch}`{{bdd}{{n{{l{j}}}}}}00{{AhCj}Cl}{{AjCj}Cl}{{AlCj}Cl}{{AnCj}Cl}{{AbCj}Cl}{{fCj}{{Cd{CbCn}}}}{{B`Cj}Cl}{{BbCj}Cl}{{BdCj}Cl}{{BfCj}Cl}{{BhCj}Cl}{{A`Cj}Cl}{{BjCj}Cl}{{BlCj}Cl}{{BnCj}Cl}{cc{}}00000000000000`{{bAdAd}{{n{{l{j}}}}}}{{bd}{{n{{l{j}}}}}}0{{bdd}{{n{{l{j}}}}}}1{{b{Af{d}}d}{{n{{l{j}}}}}}2{{bdD`}{{n{{l{j}}}}}}{{bAl}{{n{{l{j}}}}}}443``````{ce{}{}}00000000000000```{{bdDb}{{n{{l{j}}}}}}``````{b{{n{{l{j}}}}}}``777{{bAh}{{n{{l{j}}}}}}``{{Ahc}CdDd}{{Ajc}CdDd}{{Alc}CdDd}{{Anc}CdDd}{{Abc}CdDd}{{fc}CdDd}{{B`c}CdDd}{{Bbc}CdDd}{{Bdc}CdDd}{{Bfc}CdDd}{{Bhc}CdDd}{{A`c}CdDd}{{Bjc}CdDd}{{Blc}CdDd}{{Bnc}CdDd}`{{bD`D`}{{n{{l{j}}}}}}{{bD`}{{n{{l{j}}}}}}````{ce{}{}}00000000000000`{c{{Cd{e}}}{}{}}00000000000000000000000000000{cDf{}}00000000000000{{bddd}{{n{{l{j}}}}}}{{bdBj}{{n{{l{j}}}}}}{{bAj}{{n{{l{j}}}}}}{{bdD`D`}{{n{{l{j}}}}}}{{bAn}{{n{{l{j}}}}}}{{bdd}{{n{{l{j}}}}}}0````{{bd}{{n{{l{j}}}}}}`999999999999999`````````````````99{{DhCj}Cl}0{cc{}};{Dh{{Af{Dj}}}}{cDl{}}<<;=``````{{{E`{}{{Dn{c}}}}}{{n{{l{j}}}}}b}{{{Ed{}{{Eb{c}}}}}{{n{{l{j}}}}}{}}{Ef{{n{{l{j}}}}}}``{{cAhBj{h{f}}A`Bf}Cbb}","c":[],"p":[[10,"MCDatabase",0],[1,"str"],[5,"Level",0],[1,"slice"],[10,"Future",393],[5,"Box",394],[5,"Pin",395],[5,"TrafficPattern",0],[5,"CreatePerformanceAnalytics",0],[1,"usize"],[6,"Option",396],[5,"Register",0],[5,"UpdateEmail",0],[6,"Login",0],[5,"NameHash",0],[5,"PerformanceAnalytics",0],[5,"StatsUnixTimestamp",0],[5,"Notification",0],[5,"AddNotification",0],[5,"EasyCaptcha",0],[5,"CreateCaptcha",0],[5,"Captcha",0],[5,"Secret",0],[10,"CloneSPDatabase",0],[1,"unit"],[6,"Result",397],[10,"Deserializer",398],[1,"bool"],[5,"Formatter",399],[8,"Result",399],[5,"Error",399],[1,"u32"],[1,"i32"],[10,"Serializer",400],[5,"TypeId",401],[6,"DBError",355],[10,"Error",402],[5,"String",403],[17,"Pool"],[10,"Connect",381],[17,"Conn"],[10,"GetConnection",381],[10,"Migrate",381],[8,"DBResult",355]],"b":[[371,"impl-Display-for-DBError"],[372,"impl-Debug-for-DBError"]]}],\ -["db_sqlx_maria",{"doc":"","t":"FGFPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNCNNNNNNNNNNNNNNNNNNNNNOONNNNNNONONOOCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNPFPIFPPKPPPPRKFFGPKIEPPFPPPGKPFGKKPFFPPFRPPPFPFPFPFPPFPPPMMMNMMMMMMNXONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNMNNNNNNNNNNNNNNOOOMMMNNNNNNNNNNMMMMOOONNNNNNNNNNNNNNOOOOOOMNNNNNNNNNNNNNNCMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMMMMMMMMOOOOOONNNNNNNNNNNNNNNNNOOOMOOMOOCOMCOMMMMOONNNNNNNNNNNNNNONNMMCOOONNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMOOOOMONNNNNNNNNNNNNNNNOOOOOOOPIPPGPIPPPPPPPRKKKKRMMMPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMOOMMOOOMMMMMMMOOOCOOOOOOMMMMOMMMMMMMMMMMMMOOOOOOOOOMOOMOOOMOMMMMOOOMMOOOOMMMMMMMOOOOMOOOPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMXONNOMNMNOOOMMMMMMMOOONOOOOOOMNMMMNNOMMMMMMMMMMMMMOOOOOONOOOMOOMOOOMOMMMMOONOMMOOONONNNMMMMMMMOOOOMONOOSSHHH","n":["Conn","ConnectionOptions","Database","Existing","Fresh","Fresh","InnerNotification","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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","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_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","heading","id","into","into","into","into","into","mark_notification_read","message","migrate","name","ping","pool","pool_options","prelude","received","record_confirm","record_fetch","record_solve","register","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","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_max_nonce_for_level","update_password","update_secret","update_username","url","username_exists","vzip","vzip","vzip","vzip","vzip","AccountNotFound","AddNotification","AnyDriverError","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","ColumnDecode","ColumnIndexOutOfBounds","ColumnNotFound","Configuration","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","DBError","DBOps","DBResult","Database","Database","Decode","EasyCaptcha","Email","EmailTaken","Err","Error","GetConnection","Io","Level","Login","MCDatabase","Migrate","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","PoolClosed","PoolTimedOut","Protocol","Register","RowNotFound","Secret","SecretTaken","StatsUnixTimestamp","Tls","TrafficPattern","TrafficPatternNotFound","TypeNotFound","UpdateEmail","Username","UsernameTaken","WorkerCrashed","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","as_database_error","async_trait","avg_traffic","borrow","borrow","borrow","borrow","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","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","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","clone_into","clone_into","config_fetches","config_id","confirms","connect","create_captcha","create_notification","default","default","default","default","default","default","default","default","default","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","difficulty_factor","difficulty_factor","difficulty_factor","duration","duration","email","email_exists","eq","eq","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","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","hash","heading","heading","id","id","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_database_error","key","key","key","mark_notification_read","message","message","migrate","name","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","serialize","serialize","solves","source","source","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","tests","time","time","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","to_owned","to_owned","to_string","to_string","traffic_pattern","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_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","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","type_id","type_id","type_id","type_id","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","username","username","username","username_exists","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","worker_type","worker_type","index","index","len","source","type_name","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","DBError","DBResult","EmailTaken","Err","NotificationNotFound","Ok","SecretTaken","TrafficPatternNotFound","UsernameTaken","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","DBError","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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","description","dev","difficulty_factor","difficulty_factor","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","hash","heading","heading","id","id","key","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","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","time","to","traffic_pattern","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","username","username","username","username_exists","visitor_threshold","worker_type","worker_type","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","DBError","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","async_trait","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","description","deserialize","difficulty_factor","difficulty_factor","difficulty_factor","duration","duration","email","email_exists","eq","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","from","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","hash","heading","heading","id","id","into","key","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","serialize","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","time","to","to_owned","traffic_pattern","try_from","try_into","type_id","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","username","username","username","username_exists","visitor_threshold","vzip","worker_type","worker_type","LEVELS","TRAFFIC_PATTERN","database_works","map_register_err","map_row_not_found_err"],"q":[[0,"db_sqlx_maria"],[118,"db_sqlx_maria::dev"],[527,"db_sqlx_maria::dev::Error"],[532,"db_sqlx_maria::dev::errors"],[546,"db_sqlx_maria::dev::ops"],[555,"db_sqlx_maria::dev::prelude"],[692,"db_sqlx_maria::dev::prelude::dev"],[844,"db_sqlx_maria::dev::tests"],[847,"db_sqlx_maria::errors"],[849,"core::future::future"],[850,"alloc::boxed"],[851,"core::pin"],[852,"core::option"],[853,"core::fmt"],[854,"core::fmt"],[855,"core::any"],[856,"sqlx_core::error"],[857,"serde::de"],[858,"core::fmt"],[859,"sqlx_core::migrate::error"],[860,"serde::ser"],[861,"core::error"],[862,"alloc::string"]],"d":["Use an existing database pool","Connect to database","","existing connection","","fresh connection","Represents notification","Add levels to captcha","Add traffic configuration","record PoW timing","Create psuedo ID against campaign ID to publish analytics","","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","","","","","","","","","","","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","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch PoWConfig solves","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","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","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","","check if username exists","","","","","","Account not found","Data required to add notification","Error occurred within the Any driver mapping to/from the …","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","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","Create database connection","data required to create new captcha","Log Proof-of-Work CAPTCHA performance analytics","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","","Error returned from the database.","Error occurred while decoding a value.","Represents Easy captcha configuration","email as login","Email is taken","Contains the error value","Represents all the ways a method can fail within SQLx.","Get database connection","Error communicating with the database backend.","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","Contains the success value","Proof-of-Work CAPTCHA performance analytics","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","No rows returned by a query that expected to return at …","datastructure representing a user’s secret","Secret is taken","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 …","Traffic pattern not found","Type in query doesn’t exist. Likely due to typo or …","data required to update them email of a user","username as login","Username is taken","A background worker has crashed.","Add levels to captcha","Add traffic configuration","record PoW timing","Get publishing status of pow analytics for captcha ID/ …","Create psuedo ID against campaign ID to publish analytics","Delete all records for campaign","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","","","average traffic of user’s website","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","traffic 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","captcha description","description of the captcha","description of the captcha","","","","","","","","","","","","","","","difficulty factor for which the proof was generated","","difficulty factor for which the proof was generated","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","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch 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.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","notification sender","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","log ID","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).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","captcha key/sitekey","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","message 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","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","","","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","Test utilities","time taken to generate proof","time taken to generate proof","who is the notification addressed to?","","","","","","","","","","","","","","","","","traffic pattern of easy captcha","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","Owner of the captcha configuration","check if username exists","","","","","","","","","","","","","","","","","","worker/client type: wasm, javascript, python, etc.","worker/client type: wasm, javascript, python, etc.","","","","","","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","Contains the error value","Notification not found","Contains the success value","Secret is taken","Traffic pattern not found","Username is taken","database connection type","Create database 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","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 database connection","data required to create new captcha","Log Proof-of-Work CAPTCHA performance analytics","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","Represents Easy captcha configuration","email as login","Email is taken","Contains the error value","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","Contains the success value","Proof-of-Work CAPTCHA performance analytics","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","record PoW timing","Get publishing status of pow analytics for captcha ID/ …","Create psuedo ID against campaign ID to publish analytics","Delete all records for campaign","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","average traffic of user’s website","traffic 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","captcha description","description of the captcha","description of the captcha","useful imports for supporting a new database","difficulty factor for which the proof was generated","","difficulty factor for which the proof was generated","cool down duration","cool down duration","Optionally, email of new use","check if email exists","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch PoWConfig solves","notification sender","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","log ID","db assigned ID of the notification","captcha key/sitekey","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","message 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","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","time taken to generate proof","time taken to generate proof","who is the notification addressed to?","traffic pattern of easy captcha","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","Owner of the captcha configuration","check if username exists","","worker/client type: wasm, javascript, python, etc.","worker/client type: wasm, javascript, python, etc.","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 database connection","data required to create new captcha","Log Proof-of-Work CAPTCHA performance analytics","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","Represents Easy captcha configuration","email as login","Email is taken","Contains the error value","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","Contains the success value","Proof-of-Work CAPTCHA performance analytics","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","record PoW timing","Get publishing status of pow analytics for captcha ID/ …","Create psuedo ID against campaign ID to publish analytics","Delete all records for campaign","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","","average traffic of user’s website","","","traffic 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","captcha description","description of the captcha","description of the captcha","","difficulty factor for which the proof was generated","","difficulty factor for which the proof was generated","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch PoWConfig solves","","Returns the argument unchanged.","notification sender","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","log ID","db assigned ID of the notification","Calls U::from(self).","captcha key/sitekey","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","message 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","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","time taken to generate proof","time taken to generate proof","who is the notification addressed to?","","traffic pattern of easy captcha","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","Owner of the captcha configuration","check if username exists","","","worker/client type: wasm, javascript, python, etc.","worker/client type: wasm, javascript, python, etc.","levels for complex captcha config","easy traffic pattern","test all database functions","map postgres errors to DBError types","map custom row not found error to DB error"],"i":[0,0,0,15,0,15,0,1,1,1,1,1,1,1,1,1,51,15,52,1,12,51,15,52,1,12,1,1,12,1,1,12,15,1,1,1,1,1,1,0,52,1,12,0,1,1,1,12,51,15,52,1,12,1,1,1,1,1,1,1,1,1,1,1,1,12,12,51,15,52,1,12,1,12,1,12,1,1,52,0,12,1,1,1,1,1,1,1,12,51,15,52,1,12,51,15,52,1,12,51,15,52,1,12,1,1,1,1,1,1,1,52,1,51,15,52,1,12,41,0,29,0,0,41,41,0,29,29,29,29,46,0,0,0,0,41,0,0,0,29,29,0,22,41,53,0,0,29,0,0,0,0,29,0,0,41,53,0,39,29,29,29,0,29,0,41,0,29,0,41,29,0,22,41,29,13,13,13,13,13,13,13,13,13,13,29,0,8,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,8,13,24,27,22,28,9,31,32,33,17,34,8,16,35,36,37,24,27,22,28,9,31,32,33,17,34,8,16,35,36,32,35,32,39,13,13,9,31,32,33,17,34,8,16,35,36,13,13,13,13,34,16,35,24,27,22,28,9,31,32,33,17,34,8,16,35,36,9,3,31,16,35,24,13,24,27,22,28,9,31,32,33,17,34,8,16,35,36,0,13,13,13,41,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,29,41,24,27,22,28,9,31,32,33,33,17,34,8,16,35,36,29,29,29,29,17,13,13,13,13,13,13,46,13,13,13,13,13,13,24,28,33,17,31,33,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,29,34,16,35,13,33,17,47,33,27,0,8,13,0,33,13,13,13,13,24,36,24,27,22,28,9,31,32,33,17,34,8,16,35,36,32,41,29,13,13,0,9,31,17,24,27,22,28,9,31,32,33,17,34,8,16,35,36,41,29,34,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,13,13,13,13,13,13,13,24,27,28,34,13,3,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,9,31,54,55,54,55,56,41,0,41,41,0,41,0,41,53,41,53,41,41,41,46,0,0,0,0,39,39,46,47,41,0,0,0,41,41,0,46,0,0,0,0,41,0,0,0,22,41,53,0,0,0,0,0,0,0,41,53,0,39,0,0,41,0,0,41,0,22,41,13,13,13,13,13,13,13,13,13,13,8,8,13,37,32,35,32,39,13,13,13,13,13,13,34,16,35,0,9,3,31,16,35,24,13,13,13,13,17,13,13,13,13,13,13,46,13,13,13,13,13,13,24,28,33,17,31,33,34,16,35,13,33,17,47,33,27,8,13,33,13,13,13,13,24,36,32,13,13,9,31,17,34,13,13,13,13,13,13,13,24,27,28,34,13,3,9,31,41,0,0,0,41,41,0,46,0,0,0,0,41,0,0,0,22,41,53,0,0,0,0,0,0,0,41,53,0,39,0,0,41,0,0,41,0,22,41,13,13,13,13,13,13,13,13,13,13,0,8,3,3,8,13,3,37,3,32,35,32,39,13,13,13,13,13,13,34,16,35,3,9,3,31,16,35,24,13,3,13,13,13,3,3,17,13,13,13,13,13,13,46,13,13,13,13,13,13,24,28,33,17,31,33,3,34,16,35,13,33,17,47,33,27,8,13,33,13,13,13,13,24,36,3,32,13,13,9,31,17,3,34,3,3,3,13,13,13,13,13,13,13,24,27,28,34,13,3,3,9,31,0,0,0,0,0],"f":"```````{{bdd{h{f}}}{{n{{l{j}}}}}}{{bddA`}{{n{{l{j}}}}}}{{bdAb}{{n{{l{j}}}}}}{{bd}{{n{{l{j}}}}}}0{{bdAdAd}{{n{{l{j}}}}}}{{bAd}{{n{{l{j}}}}}}22{ce{}{}}000000000{{b{Af{d}}d}{{n{{l{j}}}}}}{bb}{AhAh}{c{{l{Aj}}}{}}{{ce}Al{}{}}0{An{{n{{l{j}}}}}}{{bdB`}{{n{{l{j}}}}}}{{bBb}{{n{{l{j}}}}}}{{bdd}{{n{{l{j}}}}}}00<``<{{AhAh}Bd}`111{{AhBf}Bh}{cc{}}0000{{bAdAd}{{n{{l{j}}}}}}{{bd}{{n{{l{j}}}}}}050=0{{bdBj}{{n{{l{j}}}}}}{{bBl}{{n{{l{j}}}}}}227``{ce{}{}}0000{{bdBn}{{n{{l{j}}}}}}`{b{{n{{l{j}}}}}}`0````555{{bC`}{{n{{l{j}}}}}}{{bBjBj}{{n{{l{j}}}}}}{{bBj}{{n{{l{j}}}}}}55{c{{Cb{e}}}{}{}}000000000{cCd{}}0000{{bddd}{{n{{l{j}}}}}}{{bdB`}{{n{{l{j}}}}}}{{bCf}{{n{{l{j}}}}}}{{bdBjBj}{{n{{l{j}}}}}}{{bCh}{{n{{l{j}}}}}}{{bdd}{{n{{l{j}}}}}}0`{{bd}{{n{{l{j}}}}}}>>>>>`````````````````````````````````````````````````````````{{Ajdd{h{f}}}{{n{{l{j}}}}}}{{AjddA`}{{n{{l{j}}}}}}{{AjdAb}{{n{{l{j}}}}}}{{Ajd}{{n{{l{j}}}}}}00{{AjdAdAd}{{n{{l{j}}}}}}{{AjAd}{{n{{l{j}}}}}}22{Cj{{Af{Cl}}}}``{ce{}{}}0000000000000000000000000000000`{{Aj{Af{d}}d}{{n{{l{j}}}}}}{C`C`}{CfCf}{BlBl}{ChCh}{AbAb}{CnCn}{D`D`}{DbDb}{BbBb}{DdDd}{A`A`}{B`B`}{DfDf}{DhDh}{Dj{{l{Aj}}}}{{ce}Al{}{}}0000000000000```{{{Dn{}{{Dl{c}}}}}{{n{{l{j}}}}}Aj}{{AjdB`}{{n{{l{j}}}}}}{{AjBb}{{n{{l{j}}}}}}{{}Ab}{{}Cn}{{}D`}{{}Db}{{}Bb}{{}Dd}{{}A`}{{}B`}{{}Df}{{}Dh}{{Ajdd}{{n{{l{j}}}}}}00{{Ajd}{{n{{l{j}}}}}}```{c{{Cb{C`}}}E`}{c{{Cb{Cf}}}E`}{c{{Cb{Bl}}}E`}{c{{Cb{Ch}}}E`}{c{{Cb{Ab}}}E`}{c{{Cb{Cn}}}E`}{c{{Cb{D`}}}E`}{c{{Cb{Db}}}E`}{c{{Cb{Bb}}}E`}{c{{Cb{Dd}}}E`}{c{{Cb{A`}}}E`}{c{{Cb{B`}}}E`}{c{{Cb{Df}}}E`}{c{{Cb{Dh}}}E`}``````>{{C`C`}Bd}{{CfCf}Bd}{{BlBl}Bd}{{ChCh}Bd}{{AbAb}Bd}{{CnCn}Bd}{{D`D`}Bd}{{DbDb}Bd}{{BbBb}Bd}{{DdDd}Bd}{{A`A`}Bd}{{B`B`}Bd}{{DfDf}Bd}{{DhDh}Bd}`{{Ajdd}{{n{{l{j}}}}}}00{{EbBf}{{Cb{AlEd}}}}0{{C`Bf}{{Cb{AlEd}}}}{{CfBf}{{Cb{AlEd}}}}{{BlBf}{{Cb{AlEd}}}}{{ChBf}{{Cb{AlEd}}}}{{AbBf}{{Cb{AlEd}}}}{{CnBf}{{Cb{AlEd}}}}{{D`Bf}{{Cb{AlEd}}}}{{DbBf}{{Cb{AlEd}}}}{{BbBf}{{Cb{AlEd}}}}{{DdBf}{{Cb{AlEd}}}}{{A`Bf}{{Cb{AlEd}}}}{{B`Bf}{{Cb{AlEd}}}}{{DfBf}{{Cb{AlEd}}}}{{DhBf}{{Cb{AlEd}}}}{{CjBf}{{Cb{AlEd}}}}0{cc{}}00000000{AhDb}111111{EfCj}2{EhCj}{cCjCl}`{{AjAdAd}{{n{{l{j}}}}}}{{Ajd}{{n{{l{j}}}}}}0{{Ajdd}{{n{{l{j}}}}}}1{{Aj{Af{d}}d}{{n{{l{j}}}}}}{{{El{}{{Ej{c}}}}}{{n{{l{j}}}}}{}}3{{AjdBj}{{n{{l{j}}}}}}{{AjBl}{{n{{l{j}}}}}}554``````{ce{}{}}000000000000000{Cj{{Af{{l{Cl}}}}}}```{{AjdBn}{{n{{l{j}}}}}}``{En{{n{{l{j}}}}}}````{Aj{{n{{l{j}}}}}}``:::{{AjC`}{{n{{l{j}}}}}}``{{C`c}CbF`}{{Cfc}CbF`}{{Blc}CbF`}{{Chc}CbF`}{{Abc}CbF`}{{Cnc}CbF`}{{D`c}CbF`}{{Dbc}CbF`}{{Bbc}CbF`}{{Ddc}CbF`}{{A`c}CbF`}{{B`c}CbF`}{{Dfc}CbF`}{{Dhc}CbF`}`{Eb{{Af{Fb}}}}{Cj{{Af{Fb}}}}{{AjBjBj}{{n{{l{j}}}}}}{{AjBj}{{n{{l{j}}}}}}````{ce{}{}}0000000000000{cFd{}}0`{c{{Cb{e}}}{}{}}0000000000000000000000000000000{cCd{}}000000000000000{{Ajddd}{{n{{l{j}}}}}}{{AjdB`}{{n{{l{j}}}}}}{{AjCf}{{n{{l{j}}}}}}{{AjdBjBj}{{n{{l{j}}}}}}{{AjCh}{{n{{l{j}}}}}}{{Ajdd}{{n{{l{j}}}}}}0````{{Ajd}{{n{{l{j}}}}}}`::::::::::::::::```````````````````````````{{{Dn{}{{Dl{c}}}}}{{n{{l{j}}}}}Aj}{{{El{}{{Ej{c}}}}}{{n{{l{j}}}}}{}}{En{{n{{l{j}}}}}}```````````````````````````````````````{{Ajdd{h{f}}}{{n{{l{j}}}}}}{{AjddA`}{{n{{l{j}}}}}}{{AjdAb}{{n{{l{j}}}}}}666{{AjdAdAd}{{n{{l{j}}}}}}{{AjAd}{{n{{l{j}}}}}}88``{{Aj{Af{d}}d}{{n{{l{j}}}}}}{Dj{{l{Aj}}}}```9?{{AjBb}{{n{{l{j}}}}}}<<<;``````````;<<<`{{AjAdAd}{{n{{l{j}}}}}}<<=<3:<{{AjdBj}{{n{{l{j}}}}}}{{AjBl}{{n{{l{j}}}}}}>>?`````````{{AjdBn}{{n{{l{j}}}}}}``<```{Aj{{n{{l{j}}}}}}`{{Ajd}{{n{{l{j}}}}}}00{{AjC`}{{n{{l{j}}}}}}```{{AjBjBj}{{n{{l{j}}}}}}{{AjBj}{{n{{l{j}}}}}}````{{Ajddd}{{n{{l{j}}}}}}{{AjdB`}{{n{{l{j}}}}}}{{AjCf}{{n{{l{j}}}}}}{{AjdBjBj}{{n{{l{j}}}}}}{{AjCh}{{n{{l{j}}}}}}{{Ajdd}{{n{{l{j}}}}}}0````9``````````````````````````````````````````{{Ajdd{h{f}}}{{n{{l{j}}}}}}{{AjddA`}{{n{{l{j}}}}}}{{AjdAb}{{n{{l{j}}}}}}<<<{{AjdAdAd}{{n{{l{j}}}}}}{{AjAd}{{n{{l{j}}}}}}>>``{ce{}{}}0`{{Aj{Af{d}}d}{{n{{l{j}}}}}}{ff}{Dj{{l{Aj}}}}{{ce}Al{}{}}```{{{Dn{}{{Dl{c}}}}}{{n{{l{j}}}}}Aj}?{{AjBb}{{n{{l{j}}}}}}<<<{{Ajd}{{n{{l{j}}}}}}```{c{{Cb{f}}}E`}``````1{{ff}Bd}???{{fBf}{{Cb{AlEd}}}}{cc{}}`{{AjAdAd}{{n{{l{j}}}}}}55{{Ajdd}{{n{{l{j}}}}}}6<{{{El{}{{Ej{c}}}}}{{n{{l{j}}}}}{}}7{{AjdBj}{{n{{l{j}}}}}}{{AjBl}{{n{{l{j}}}}}}993``````{ce{}{}}```{{AjdBn}{{n{{l{j}}}}}}``{En{{n{{l{j}}}}}}```{Aj{{n{{l{j}}}}}}`==={{AjC`}{{n{{l{j}}}}}}``{{fc}CbF`}`{{AjBjBj}{{n{{l{j}}}}}}{{AjBj}{{n{{l{j}}}}}}```7`{c{{Cb{e}}}{}{}}0{cCd{}}{{Ajddd}{{n{{l{j}}}}}}{{AjdB`}{{n{{l{j}}}}}}{{AjCf}{{n{{l{j}}}}}}{{AjdBjBj}{{n{{l{j}}}}}}{{AjCh}{{n{{l{j}}}}}}{{Ajdd}{{n{{l{j}}}}}}0````{{Ajd}{{n{{l{j}}}}}}`{ce{}{}}````{{cC`B`{h{f}}A`Bb}AlAj}{CjEb}{{CjEb}Eb}","c":[],"p":[[5,"Database",0],[1,"str"],[5,"Level",692],[1,"slice"],[10,"Future",849],[5,"Box",850],[5,"Pin",851],[5,"TrafficPattern",118],[5,"CreatePerformanceAnalytics",118],[1,"usize"],[6,"Option",852],[5,"InnerNotification",0],[10,"MCDatabase",118],[1,"unit"],[6,"ConnectionOptions",0],[5,"CreateCaptcha",118],[5,"AddNotification",118],[1,"bool"],[5,"Formatter",853],[8,"Result",853],[1,"u32"],[6,"Login",118],[1,"i32"],[5,"Register",118],[6,"Result",854],[5,"TypeId",855],[5,"UpdateEmail",118],[5,"NameHash",118],[6,"Error",118],[10,"DatabaseError",856],[5,"PerformanceAnalytics",118],[5,"StatsUnixTimestamp",118],[5,"Notification",118],[5,"EasyCaptcha",118],[5,"Captcha",118],[5,"Secret",118],[10,"CloneSPDatabase",118],[17,"Pool"],[10,"Connect",118],[10,"Deserializer",857],[6,"DBError",118],[5,"Error",853],[5,"Error",858],[6,"MigrateError",859],[17,"Conn"],[10,"GetConnection",118],[10,"Migrate",118],[10,"Serializer",860],[10,"Error",861],[5,"String",862],[5,"Conn",0],[5,"Fresh",0],[8,"DBResult",692],[15,"ColumnIndexOutOfBounds",527],[15,"ColumnDecode",527],[15,"TypeNotFound",527]],"b":[[313,"impl-Debug-for-DBError"],[314,"impl-Display-for-DBError"],[329,"impl-Display-for-Error"],[330,"impl-Debug-for-Error"],[347,"impl-From%3CError%3E-for-Error"],[349,"impl-From%3CMigrateError%3E-for-Error"],[350,"impl-From%3CE%3E-for-Error"]]}],\ -["db_sqlx_postgres",{"doc":"","t":"FGFPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNCNNNNNNNNNNNNNNNNNNNNNOONNNNNNONONOOCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNPFPIFPPKPPPPRKFFGPKIEPPFPPPGKPFGKKPFFPPFRPPPFPFPFPFPPFPPPMMMNMMMMMMNXONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNMNNNNNNNNNNNNNNOOOMMMNNNNNNNNNNMMMMOOONNNNNNNNNNNNNNOOOOOOMNNNNNNNNNNNNNNCMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMMMMMMMMOOOOOONNNNNNNNNNNNNNNNNOOOMOOMOOCOMCOMMMMOONNNNNNNNNNNNNNONNMMCOOONNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMOOOOMONNNNNNNNNNNNNNNNOOOOOOOPIPPGPIPPPPPPPRKKKKRMMMPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMOOMMOOOMMMMMMMOOOCOOOOOOMMMMOMMMMMMMMMMMMMOOOOOOOOOMOOMOOOMOMMMMOOOMMOOOOMMMMMMMOOOOMOOOPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMXONNOMNMNOOOMMMMMMMOOONOOOOOOMNMMMNNOMMMMMMMMMMMMMOOOOOONOOOMOOMOOOMOMMMMOONOMMOOONONNNMMMMMMMOOOOMONOOSSHHH","n":["Conn","ConnectionOptions","Database","Existing","Fresh","Fresh","InnerNotification","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","heading","id","into","into","into","into","into","mark_notification_read","message","migrate","name","ping","pool","pool_options","prelude","received","record_confirm","record_fetch","record_solve","register","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","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_max_nonce_for_level","update_password","update_secret","update_username","url","username_exists","vzip","vzip","vzip","vzip","vzip","AccountNotFound","AddNotification","AnyDriverError","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","ColumnDecode","ColumnIndexOutOfBounds","ColumnNotFound","Configuration","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","DBError","DBOps","DBResult","Database","Database","Decode","EasyCaptcha","Email","EmailTaken","Err","Error","GetConnection","Io","Level","Login","MCDatabase","Migrate","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","PoolClosed","PoolTimedOut","Protocol","Register","RowNotFound","Secret","SecretTaken","StatsUnixTimestamp","Tls","TrafficPattern","TrafficPatternNotFound","TypeNotFound","UpdateEmail","Username","UsernameTaken","WorkerCrashed","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","as_database_error","async_trait","avg_traffic","borrow","borrow","borrow","borrow","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","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","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","clone_into","clone_into","config_fetches","config_id","confirms","connect","create_captcha","create_notification","default","default","default","default","default","default","default","default","default","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","difficulty_factor","difficulty_factor","difficulty_factor","duration","duration","email","email_exists","eq","eq","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","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","hash","heading","heading","id","id","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_database_error","key","key","key","mark_notification_read","message","message","migrate","name","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","serialize","serialize","solves","source","source","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","tests","time","time","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","to_owned","to_owned","to_string","to_string","traffic_pattern","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_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","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","type_id","type_id","type_id","type_id","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","username","username","username","username_exists","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","worker_type","worker_type","index","index","len","source","type_name","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","DBError","DBResult","EmailTaken","Err","NotificationNotFound","Ok","SecretTaken","TrafficPatternNotFound","UsernameTaken","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","DBError","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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","description","dev","difficulty_factor","difficulty_factor","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","hash","heading","heading","id","id","key","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","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","time","to","traffic_pattern","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","username","username","username","username_exists","visitor_threshold","worker_type","worker_type","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","DBError","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","async_trait","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","description","deserialize","difficulty_factor","difficulty_factor","difficulty_factor","duration","duration","email","email_exists","eq","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","from","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","hash","heading","heading","id","id","into","key","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","serialize","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","time","to","to_owned","traffic_pattern","try_from","try_into","type_id","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","username","username","username","username_exists","visitor_threshold","vzip","worker_type","worker_type","LEVELS","TRAFFIC_PATTERN","database_works","map_register_err","map_row_not_found_err"],"q":[[0,"db_sqlx_postgres"],[119,"db_sqlx_postgres::dev"],[528,"db_sqlx_postgres::dev::Error"],[533,"db_sqlx_postgres::dev::errors"],[547,"db_sqlx_postgres::dev::ops"],[556,"db_sqlx_postgres::dev::prelude"],[693,"db_sqlx_postgres::dev::prelude::dev"],[845,"db_sqlx_postgres::dev::tests"],[848,"db_sqlx_postgres::errors"],[850,"core::future::future"],[851,"alloc::boxed"],[852,"core::pin"],[853,"core::option"],[854,"core::fmt"],[855,"core::fmt"],[856,"core::any"],[857,"sqlx_core::error"],[858,"serde::de"],[859,"core::fmt"],[860,"std::io::error"],[861,"serde::ser"],[862,"core::error"],[863,"alloc::string"]],"d":["Use an existing database pool","Connect to database","","existing connection","","fresh connection","Represents notification","Add levels to captcha","Add traffic configuration","record PoW timing","Create psuedo ID against campaign ID to publish analytics","","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","","","","","","","","","","","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","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch PoWConfig solves","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","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","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","","check if username exists","","","","","","Account not found","Data required to add notification","Error occurred within the Any driver mapping to/from the …","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","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","Create database connection","data required to create new captcha","Log Proof-of-Work CAPTCHA performance analytics","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","","Error returned from the database.","Error occurred while decoding a value.","Represents Easy captcha configuration","email as login","Email is taken","Contains the error value","Represents all the ways a method can fail within SQLx.","Get database connection","Error communicating with the database backend.","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","Contains the success value","Proof-of-Work CAPTCHA performance analytics","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","No rows returned by a query that expected to return at …","datastructure representing a user’s secret","Secret is taken","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 …","Traffic pattern not found","Type in query doesn’t exist. Likely due to typo or …","data required to update them email of a user","username as login","Username is taken","A background worker has crashed.","Add levels to captcha","Add traffic configuration","record PoW timing","Get publishing status of pow analytics for captcha ID/ …","Create psuedo ID against campaign ID to publish analytics","Delete all records for campaign","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","","","average traffic of user’s website","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","traffic 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","captcha description","description of the captcha","description of the captcha","","","","","","","","","","","","","","","difficulty factor for which the proof was generated","","difficulty factor for which the proof was generated","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","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch 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.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","notification sender","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","log ID","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).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","captcha key/sitekey","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","message 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","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","","","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","Test utilities","time taken to generate proof","time taken to generate proof","who is the notification addressed to?","","","","","","","","","","","","","","","","","traffic pattern of easy captcha","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","Owner of the captcha configuration","check if username exists","","","","","","","","","","","","","","","","","","worker/client type: wasm, javascript, python, etc.","worker/client type: wasm, javascript, python, etc.","","","","","","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","Contains the error value","Notification not found","Contains the success value","Secret is taken","Traffic pattern not found","Username is taken","database connection type","Create database 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","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 database connection","data required to create new captcha","Log Proof-of-Work CAPTCHA performance analytics","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","Represents Easy captcha configuration","email as login","Email is taken","Contains the error value","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","Contains the success value","Proof-of-Work CAPTCHA performance analytics","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","record PoW timing","Get publishing status of pow analytics for captcha ID/ …","Create psuedo ID against campaign ID to publish analytics","Delete all records for campaign","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","average traffic of user’s website","traffic 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","captcha description","description of the captcha","description of the captcha","useful imports for supporting a new database","difficulty factor for which the proof was generated","","difficulty factor for which the proof was generated","cool down duration","cool down duration","Optionally, email of new use","check if email exists","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch PoWConfig solves","notification sender","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","log ID","db assigned ID of the notification","captcha key/sitekey","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","message 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","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","time taken to generate proof","time taken to generate proof","who is the notification addressed to?","traffic pattern of easy captcha","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","Owner of the captcha configuration","check if username exists","","worker/client type: wasm, javascript, python, etc.","worker/client type: wasm, javascript, python, etc.","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 database connection","data required to create new captcha","Log Proof-of-Work CAPTCHA performance analytics","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","Represents Easy captcha configuration","email as login","Email is taken","Contains the error value","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","Contains the success value","Proof-of-Work CAPTCHA performance analytics","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","record PoW timing","Get publishing status of pow analytics for captcha ID/ …","Create psuedo ID against campaign ID to publish analytics","Delete all records for campaign","fetch PoW analytics","Get all psuedo IDs","Get campaign ID from psuedo ID","Get psuedo ID from campaign ID","","average traffic of user’s website","","","traffic 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","captcha description","description of the captcha","description of the captcha","","difficulty factor for which the proof was generated","","difficulty factor for which the proof was generated","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","fetch PoWConfig fetches","fetch PoWConfig confirms","fetch PoWConfig solves","","Returns the argument unchanged.","notification sender","Get all easy captcha configurations on instance","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 maximum nonce tracked so far for captcha levels","get a user’s password","get a user’s secret","get a user’s secret from a captcha key","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","log ID","db assigned ID of the notification","Calls U::from(self).","captcha key/sitekey","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","message 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","Get the entry at a location in the list of analytics …","Get number of analytics entries that are under a certain …","time taken to generate proof","time taken to generate proof","who is the notification addressed to?","","traffic pattern of easy captcha","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","Track maximum nonce received against captcha levels","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","Owner of the captcha configuration","check if username exists","","","worker/client type: wasm, javascript, python, etc.","worker/client type: wasm, javascript, python, etc.","levels for complex captcha config","easy traffic pattern","test all database functions","map postgres errors to DBError types","map custom row not found error to DB error"],"i":[0,0,0,15,0,15,0,1,1,1,1,1,1,1,1,1,51,15,52,1,12,51,15,52,1,12,1,1,12,1,1,12,15,1,1,12,1,1,1,1,0,52,1,12,0,1,1,1,12,51,15,52,1,12,1,1,1,1,1,1,1,1,1,1,1,1,12,12,51,15,52,1,12,1,12,1,12,1,1,52,0,12,1,1,1,1,1,1,1,12,51,15,52,1,12,51,15,52,1,12,51,15,52,1,12,1,1,1,1,1,1,1,52,1,51,15,52,1,12,41,0,29,0,0,41,41,0,29,29,29,29,46,0,0,0,0,41,0,0,0,29,29,0,22,41,53,0,0,29,0,0,0,0,29,0,0,41,53,0,39,29,29,29,0,29,0,41,0,29,0,41,29,0,22,41,29,13,13,13,13,13,13,13,13,13,13,29,0,8,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,8,13,24,27,22,28,9,31,32,33,17,34,8,16,35,36,37,24,27,22,28,9,31,32,33,17,34,8,16,35,36,32,35,32,39,13,13,9,31,32,33,17,34,8,16,35,36,13,13,13,13,34,16,35,24,27,22,28,9,31,32,33,17,34,8,16,35,36,9,3,31,16,35,24,13,24,27,22,28,9,31,32,33,17,34,8,16,35,36,0,13,13,13,41,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,29,41,24,27,22,28,9,31,32,33,33,17,34,8,16,35,36,29,29,29,29,17,13,13,13,13,13,13,46,13,13,13,13,13,13,24,28,33,17,31,33,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,29,34,16,35,13,33,17,47,33,27,0,8,13,0,33,13,13,13,13,24,36,24,27,22,28,9,31,32,33,17,34,8,16,35,36,32,41,29,13,13,0,9,31,17,24,27,22,28,9,31,32,33,17,34,8,16,35,36,41,29,34,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,13,13,13,13,13,13,13,24,27,28,34,13,3,41,24,27,22,28,9,31,32,33,17,34,8,16,35,36,29,9,31,54,55,54,55,56,41,0,41,41,0,41,0,41,53,41,53,41,41,41,46,0,0,0,0,39,39,46,47,41,0,0,0,41,41,0,46,0,0,0,0,41,0,0,0,22,41,53,0,0,0,0,0,0,0,41,53,0,39,0,0,41,0,0,41,0,22,41,13,13,13,13,13,13,13,13,13,13,8,8,13,37,32,35,32,39,13,13,13,13,13,13,34,16,35,0,9,3,31,16,35,24,13,13,13,13,17,13,13,13,13,13,13,46,13,13,13,13,13,13,24,28,33,17,31,33,34,16,35,13,33,17,47,33,27,8,13,33,13,13,13,13,24,36,32,13,13,9,31,17,34,13,13,13,13,13,13,13,24,27,28,34,13,3,9,31,41,0,0,0,41,41,0,46,0,0,0,0,41,0,0,0,22,41,53,0,0,0,0,0,0,0,41,53,0,39,0,0,41,0,0,41,0,22,41,13,13,13,13,13,13,13,13,13,13,0,8,3,3,8,13,3,37,3,32,35,32,39,13,13,13,13,13,13,34,16,35,3,9,3,31,16,35,24,13,3,13,13,13,3,3,17,13,13,13,13,13,13,46,13,13,13,13,13,13,24,28,33,17,31,33,3,34,16,35,13,33,17,47,33,27,8,13,33,13,13,13,13,24,36,3,32,13,13,9,31,17,3,34,3,3,3,13,13,13,13,13,13,13,24,27,28,34,13,3,3,9,31,0,0,0,0,0],"f":"```````{{bdd{h{f}}}{{n{{l{j}}}}}}{{bddA`}{{n{{l{j}}}}}}{{bdAb}{{n{{l{j}}}}}}{{bd}{{n{{l{j}}}}}}0{{bdAdAd}{{n{{l{j}}}}}}{{bAd}{{n{{l{j}}}}}}22{ce{}{}}000000000{{b{Af{d}}d}{{n{{l{j}}}}}}{bb}{AhAh}{c{{l{Aj}}}{}}{{ce}Al{}{}}0{An{{n{{l{j}}}}}}{{bdB`}{{n{{l{j}}}}}}{{bBb}{{n{{l{j}}}}}}{{}Ah}{{bdd}{{n{{l{j}}}}}}00=``={{AhAh}Bd}`111{{AhBf}Bh}{cc{}}0000{{bAdAd}{{n{{l{j}}}}}}{{bd}{{n{{l{j}}}}}}050>0{{bdBj}{{n{{l{j}}}}}}{{bBl}{{n{{l{j}}}}}}227``{ce{}{}}0000{{bdBn}{{n{{l{j}}}}}}`{b{{n{{l{j}}}}}}`0````555{{bC`}{{n{{l{j}}}}}}{{bBjBj}{{n{{l{j}}}}}}{{bBj}{{n{{l{j}}}}}}55{c{{Cb{e}}}{}{}}000000000{cCd{}}0000{{bddd}{{n{{l{j}}}}}}{{bdB`}{{n{{l{j}}}}}}{{bCf}{{n{{l{j}}}}}}{{bdBjBj}{{n{{l{j}}}}}}{{bCh}{{n{{l{j}}}}}}{{bdd}{{n{{l{j}}}}}}0`{{bd}{{n{{l{j}}}}}}>>>>>`````````````````````````````````````````````````````````{{Ajdd{h{f}}}{{n{{l{j}}}}}}{{AjddA`}{{n{{l{j}}}}}}{{AjdAb}{{n{{l{j}}}}}}{{Ajd}{{n{{l{j}}}}}}00{{AjdAdAd}{{n{{l{j}}}}}}{{AjAd}{{n{{l{j}}}}}}22{Cj{{Af{Cl}}}}``{ce{}{}}0000000000000000000000000000000`{{Aj{Af{d}}d}{{n{{l{j}}}}}}{C`C`}{CfCf}{BlBl}{ChCh}{AbAb}{CnCn}{D`D`}{DbDb}{BbBb}{DdDd}{A`A`}{B`B`}{DfDf}{DhDh}{Dj{{l{Aj}}}}{{ce}Al{}{}}0000000000000```{{{Dn{}{{Dl{c}}}}}{{n{{l{j}}}}}Aj}{{AjdB`}{{n{{l{j}}}}}}{{AjBb}{{n{{l{j}}}}}}{{}Ab}{{}Cn}{{}D`}{{}Db}{{}Bb}{{}Dd}{{}A`}{{}B`}{{}Df}{{}Dh}{{Ajdd}{{n{{l{j}}}}}}00{{Ajd}{{n{{l{j}}}}}}```{c{{Cb{C`}}}E`}{c{{Cb{Cf}}}E`}{c{{Cb{Bl}}}E`}{c{{Cb{Ch}}}E`}{c{{Cb{Ab}}}E`}{c{{Cb{Cn}}}E`}{c{{Cb{D`}}}E`}{c{{Cb{Db}}}E`}{c{{Cb{Bb}}}E`}{c{{Cb{Dd}}}E`}{c{{Cb{A`}}}E`}{c{{Cb{B`}}}E`}{c{{Cb{Df}}}E`}{c{{Cb{Dh}}}E`}``````>{{C`C`}Bd}{{CfCf}Bd}{{BlBl}Bd}{{ChCh}Bd}{{AbAb}Bd}{{CnCn}Bd}{{D`D`}Bd}{{DbDb}Bd}{{BbBb}Bd}{{DdDd}Bd}{{A`A`}Bd}{{B`B`}Bd}{{DfDf}Bd}{{DhDh}Bd}`{{Ajdd}{{n{{l{j}}}}}}00{{EbBf}{{Cb{AlEd}}}}0{{C`Bf}{{Cb{AlEd}}}}{{CfBf}{{Cb{AlEd}}}}{{BlBf}{{Cb{AlEd}}}}{{ChBf}{{Cb{AlEd}}}}{{AbBf}{{Cb{AlEd}}}}{{CnBf}{{Cb{AlEd}}}}{{D`Bf}{{Cb{AlEd}}}}{{DbBf}{{Cb{AlEd}}}}{{BbBf}{{Cb{AlEd}}}}{{DdBf}{{Cb{AlEd}}}}{{A`Bf}{{Cb{AlEd}}}}{{B`Bf}{{Cb{AlEd}}}}{{DfBf}{{Cb{AlEd}}}}{{DhBf}{{Cb{AlEd}}}}{{CjBf}{{Cb{AlEd}}}}0{cc{}}00000000{AhDb}1111111{cCjCl}{EfCj}{EhCj}`{{AjAdAd}{{n{{l{j}}}}}}{{Ajd}{{n{{l{j}}}}}}0{{Ajdd}{{n{{l{j}}}}}}1{{Aj{Af{d}}d}{{n{{l{j}}}}}}{{{El{}{{Ej{c}}}}}{{n{{l{j}}}}}{}}3{{AjdBj}{{n{{l{j}}}}}}{{AjBl}{{n{{l{j}}}}}}554``````{ce{}{}}000000000000000{Cj{{Af{{l{Cl}}}}}}```{{AjdBn}{{n{{l{j}}}}}}``{En{{n{{l{j}}}}}}````{Aj{{n{{l{j}}}}}}``:::{{AjC`}{{n{{l{j}}}}}}``{{C`c}CbF`}{{Cfc}CbF`}{{Blc}CbF`}{{Chc}CbF`}{{Abc}CbF`}{{Cnc}CbF`}{{D`c}CbF`}{{Dbc}CbF`}{{Bbc}CbF`}{{Ddc}CbF`}{{A`c}CbF`}{{B`c}CbF`}{{Dfc}CbF`}{{Dhc}CbF`}`{Eb{{Af{Fb}}}}{Cj{{Af{Fb}}}}{{AjBjBj}{{n{{l{j}}}}}}{{AjBj}{{n{{l{j}}}}}}````{ce{}{}}0000000000000{cFd{}}0`{c{{Cb{e}}}{}{}}0000000000000000000000000000000{cCd{}}000000000000000{{Ajddd}{{n{{l{j}}}}}}{{AjdB`}{{n{{l{j}}}}}}{{AjCf}{{n{{l{j}}}}}}{{AjdBjBj}{{n{{l{j}}}}}}{{AjCh}{{n{{l{j}}}}}}{{Ajdd}{{n{{l{j}}}}}}0````{{Ajd}{{n{{l{j}}}}}}`::::::::::::::::```````````````````````````{{{Dn{}{{Dl{c}}}}}{{n{{l{j}}}}}Aj}{{{El{}{{Ej{c}}}}}{{n{{l{j}}}}}{}}{En{{n{{l{j}}}}}}```````````````````````````````````````{{Ajdd{h{f}}}{{n{{l{j}}}}}}{{AjddA`}{{n{{l{j}}}}}}{{AjdAb}{{n{{l{j}}}}}}666{{AjdAdAd}{{n{{l{j}}}}}}{{AjAd}{{n{{l{j}}}}}}88``{{Aj{Af{d}}d}{{n{{l{j}}}}}}{Dj{{l{Aj}}}}```9?{{AjBb}{{n{{l{j}}}}}}<<<;``````````;<<<`{{AjAdAd}{{n{{l{j}}}}}}<<=<3:<{{AjdBj}{{n{{l{j}}}}}}{{AjBl}{{n{{l{j}}}}}}>>?`````````{{AjdBn}{{n{{l{j}}}}}}``<```{Aj{{n{{l{j}}}}}}`{{Ajd}{{n{{l{j}}}}}}00{{AjC`}{{n{{l{j}}}}}}```{{AjBjBj}{{n{{l{j}}}}}}{{AjBj}{{n{{l{j}}}}}}````{{Ajddd}{{n{{l{j}}}}}}{{AjdB`}{{n{{l{j}}}}}}{{AjCf}{{n{{l{j}}}}}}{{AjdBjBj}{{n{{l{j}}}}}}{{AjCh}{{n{{l{j}}}}}}{{Ajdd}{{n{{l{j}}}}}}0````9``````````````````````````````````````````{{Ajdd{h{f}}}{{n{{l{j}}}}}}{{AjddA`}{{n{{l{j}}}}}}{{AjdAb}{{n{{l{j}}}}}}<<<{{AjdAdAd}{{n{{l{j}}}}}}{{AjAd}{{n{{l{j}}}}}}>>``{ce{}{}}0`{{Aj{Af{d}}d}{{n{{l{j}}}}}}{ff}{Dj{{l{Aj}}}}{{ce}Al{}{}}```{{{Dn{}{{Dl{c}}}}}{{n{{l{j}}}}}Aj}?{{AjBb}{{n{{l{j}}}}}}<<<{{Ajd}{{n{{l{j}}}}}}```{c{{Cb{f}}}E`}``````1{{ff}Bd}???{{fBf}{{Cb{AlEd}}}}{cc{}}`{{AjAdAd}{{n{{l{j}}}}}}55{{Ajdd}{{n{{l{j}}}}}}6<{{{El{}{{Ej{c}}}}}{{n{{l{j}}}}}{}}7{{AjdBj}{{n{{l{j}}}}}}{{AjBl}{{n{{l{j}}}}}}993``````{ce{}{}}```{{AjdBn}{{n{{l{j}}}}}}``{En{{n{{l{j}}}}}}```{Aj{{n{{l{j}}}}}}`==={{AjC`}{{n{{l{j}}}}}}``{{fc}CbF`}`{{AjBjBj}{{n{{l{j}}}}}}{{AjBj}{{n{{l{j}}}}}}```7`{c{{Cb{e}}}{}{}}0{cCd{}}{{Ajddd}{{n{{l{j}}}}}}{{AjdB`}{{n{{l{j}}}}}}{{AjCf}{{n{{l{j}}}}}}{{AjdBjBj}{{n{{l{j}}}}}}{{AjCh}{{n{{l{j}}}}}}{{Ajdd}{{n{{l{j}}}}}}0````{{Ajd}{{n{{l{j}}}}}}`{ce{}{}}````{{cC`B`{h{f}}A`Bb}AlAj}{CjEb}{{CjEb}Eb}","c":[],"p":[[5,"Database",0],[1,"str"],[5,"Level",693],[1,"slice"],[10,"Future",850],[5,"Box",851],[5,"Pin",852],[5,"TrafficPattern",119],[5,"CreatePerformanceAnalytics",119],[1,"usize"],[6,"Option",853],[5,"InnerNotification",0],[10,"MCDatabase",119],[1,"unit"],[6,"ConnectionOptions",0],[5,"CreateCaptcha",119],[5,"AddNotification",119],[1,"bool"],[5,"Formatter",854],[8,"Result",854],[1,"u32"],[6,"Login",119],[1,"i32"],[5,"Register",119],[6,"Result",855],[5,"TypeId",856],[5,"UpdateEmail",119],[5,"NameHash",119],[6,"Error",119],[10,"DatabaseError",857],[5,"PerformanceAnalytics",119],[5,"StatsUnixTimestamp",119],[5,"Notification",119],[5,"EasyCaptcha",119],[5,"Captcha",119],[5,"Secret",119],[10,"CloneSPDatabase",119],[17,"Pool"],[10,"Connect",119],[10,"Deserializer",858],[6,"DBError",119],[5,"Error",854],[6,"MigrateError",859],[5,"Error",860],[17,"Conn"],[10,"GetConnection",119],[10,"Migrate",119],[10,"Serializer",861],[10,"Error",862],[5,"String",863],[5,"Conn",0],[5,"Fresh",0],[8,"DBResult",693],[15,"ColumnIndexOutOfBounds",528],[15,"ColumnDecode",528],[15,"TypeNotFound",528]],"b":[[314,"impl-Display-for-DBError"],[315,"impl-Debug-for-DBError"],[330,"impl-Debug-for-Error"],[331,"impl-Display-for-Error"],[349,"impl-From%3CE%3E-for-Error"],[350,"impl-From%3CMigrateError%3E-for-Error"],[351,"impl-From%3CError%3E-for-Error"]]}],\ -["mcaptcha",{"doc":"","t":"IIFSSFFSFFFFSFFFFFFFSSSSFFFFSFFSSOOOOOOOOOOOOOOOOOOOOOCNNNNNNNNNNNNNNNNOOOOCOCCOOCNNNNNNNNCCCCNNNNNNNNHHNNNNNNNNOHCOOOCOCOOOCCOCOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCEFCCNNNNHNCCCCOCHCCNNNNFFENNNNNNNNCNNCONNNNNNECCCNNHNNNNNNNNCONNNNFNNNCHNNNNHFNNNNNNNNNOFNNNNNNNNNNHFNNNNNNNNNNNNNFFNNNNNNNNOONNNNNNNNNOOONNHNNNNNNNNNNHFNNNFNNOONONNNNNOOOOONNNNNNNFNNNNHNNNNNNFNNFNNNNNNNNNNNNNNNNNNCNHFNNNNNNNNNNOFNNNHNNNNNNNNNNNNFFNNNCCHFNNNNNNNNNNNNFNNNNNOONONNNNFFFNNNNNNNNNNNNONNNONNNNNNNNNOHOOOHNNNNNNNNNNNNNNNONNNCCCCHCHCCFFNNNNNNNNFONNONNNNNNNOOOONCNNNNNNNNNNNNNNNHFNNNNNNFNNNNNNOONNNNNNNNNNNFFONNNNNNNNOHHNNNNFNONNNNNNNNNNNNOOOONNCNNHNNNNNNNNNNNNNNFHNNNNFNNONNNNNNONFFNNNNNNNNNNNNONNNNNFNNNONNNNNNNNNNNNNNONNNFNNOOONONNONNNOONFNNNNNNNNNNFNNONCNNNNNNNNNNFNNNONNNNNNFNNNNNNONONNNNNNOOONNCNNNNNNNNNNFFNNNHFFGFFGPPPPNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNOONNCNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNFNNONONNNNNNCCCCHFFNNNNNNNNNNNNONNONNONNNNNNNNNFNNNNNNNNNNNNNFOONNOOONNNNNNNNNNNFNNNNNNNONNFNNNNNNNNNNFONNNONONNNNNECCHCCFFNNNNNNNNNNNNONNNNNFHNNNOONONNONNNNNNNNNNNNNNFNNNNONNQONNNNONONFFNNNNNNNNNNNNNNNNNNNNOONONNOONNONNNNNNNNNFNNNOFFNNNNNNNNNNNNNNNNNNNNONONNNNONNNNNNNNNOFNNNSFOONNONNNONOOOONNNNFFGFFGFFGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNOOHFNCNNNHNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNFNNNNNNNNNNNNNNONNNNNNFFONNNNNNNNNNNNFNNNNNNNNNNNNNNONNCFONNHNNNNNNNNNNNNNNNNNFNNONNNNONNNNFPIPGNNNNNOOOQQNNNNNONNONNNNNNOOONNNNNNNNNNNSFSSSNNNNNNNNNNNONNNNNICCHHSSFNNNNNNNNNNNONNFSSNNNNNNNNFNNNNNNHFNNNNNNNNNCHFNNNNNNNNNNNNNNNNFONNNONNONNNNFNNNNNNNNNNONNNCFSNNNNNNNNNNNNNHONPPPPPPFPPPFPPPPPPGIPPPPGPIFPPPPPPPNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSCCHCCHCCCCHCFFSONNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNFFSONNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNFNNNNNNOONNNNNSFNNNNONNNNNNNNNONSFFSFOONNNNNNNNNNNNFNNNNNNNNONNNNCHONNNNNNNNNNNNNNNNNFNNNONNNNNONFSNNNNNNNNNNNCFNNNCHCCONNNNNNNCNNFFSNNNNNNNNNNOONNNOOONFNONNNNNNNNNNNNNNNFNNNNONNOOONNNONFSNNNNNNNNNNFONNNNNNNNNNNNNCOHFNNNNNNNNNNNNNFONNNNFNNONNONNNNNONCCCCCHCFFFFSOOFONNNNNNNNNNNNONNNNNNNNFOOOOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNFFSFNNNNNNNNNNNNOFONNNNNNNNOOOONNOONNNNNNNNNNNNNNNNNNNNNNNNFSNNNNNNNNNNFNNNNONNNNNNNNNFOONNOOONNNNNNNONNNNONFSNNNNNNONNNNOOONONNNONNNNNNNFNNSFNNNNNNNNONNNFNNNOFNNNNCHONNNNNNNNNNNNNFNNNNNNONNNNSFOONNOONNNONNOOOOONNNNFFONNNNNNNNNNONNNNNNNNNFNNNNNNNNNNONNNHFGSFFSPPFFFFFOOOONNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNOOOOOONNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONONNNNNNNNNONOOOOOOOOOOOOOOONONOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNECHCFNNONNNNNNNNFFCNNNNNNNNFNNNNNNNNHHNNNNNNNNNNFNNNNNNNNNNNNNNNNFFFFFFIFFFFOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKFFKNNNNNNNNNNNNMNNOONNNNNNNMNNNNNNNNNNNMNNMNNMNNNONNNNNNNNNNNNNNNFFKONNNNONNNNNNNNNNNMNNMNNMNNMNONNNNNNNNNNFFSSONNNNNNNNNNNNNNNNNNNCHFNNNNNNNNNNNNNFNNNNNNNNON","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","alloc","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","db","debug","demo","deref","deref","deref","deref","deref","deref","deref","deref","docs","easy","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","phantom","ptr","redis","routes","server","settings","settings","smtp","source_code","static_assets","stats","stats","survey","survey","survey_secrets","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","stats","survey","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","publish_benchmarks","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","calculate_with_percentile","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","publish_benchmarks","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","update_runner","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","publish_benchmarks","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","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","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","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","ApiPoWConfig","GetConfigPayload","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_config","init_mcaptcha","into","into","into","key","max_recorded_nonce","register","salt","serialize","serialize","string","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","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","ApiWork","ValidationToken","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","fmt","fmt","from","from","from","into","into","into","key","nonce","register","result","serialize","serialize","string","time","to_owned","to_owned","token","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify_pow","vzip","vzip","vzip","worker_type","CaptchaValidateResp","VerifyCaptchaResultPayload","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","fmt","fmt","from","from","from","into","into","into","key","register","secret","serialize","serialize","to_owned","to_owned","token","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","valid","validate_captcha_token","vzip","vzip","vzip","ROUTES","Routes","account","auth","borrow","borrow_mut","captcha","from","get_login_route","into","meta","new","notifications","pow","stats","survey","try_from","try_into","type_id","vzip","BuildDetails","BuildDetailsBuilder","BuildDetailsBuilderError","PercentileReq","PercentileReqBuilder","PercentileReqBuilderError","PercentileResp","PercentileRespBuilder","PercentileRespBuilderError","UninitializedField","UninitializedField","UninitializedField","ValidationError","ValidationError","ValidationError","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","build","build","build","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","create_empty","create_empty","create_empty","default","default","default","deserialize","deserialize","deserialize","difficulty_factor","difficulty_factor","difficulty_factor","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","git_commit_hash","git_commit_hash","git_commit_hash","into","into","into","into","into","into","into","into","into","into","percentile","percentile","percentile","percentile_bench_runner","percentile_benches","register","routes","serialize","serialize","serialize","services","time","time","time","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","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","version","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Stats","borrow","borrow_mut","clone","clone_into","deserialize","eq","equivalent","equivalent","equivalent","equivalent","fmt","from","into","new","percentile_benches","serialize","to_owned","try_from","try_into","type_id","vzip","Page","SurveySecretUpload","auth_token","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deserialize","deserialize","download","eq","equivalent","equivalent","equivalent","equivalent","fmt","from","from","from","from","into","into","into","into","page","register","register","routes","secret","secret","serialize","serialize","services","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","Survey","borrow","borrow_mut","download","from","get_download_route","into","new","secret","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","inner","into","into","mailer","new","new","new_system","register_survey","remove","rename","settings","stats","survey_secrets","try_from","try_from","try_into","try_into","type_id","type_id","upload_survey_job","validate_verification_tokens","verify_pow","vzip","vzip","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","BoxDB","maria","pg","get_data","get_data","DEMO_PASSWORD","DEMO_USER","DemoUser","abort","borrow","borrow_mut","delete_demo_user","from","into","register_demo_user","run","spawn","try_from","try_into","tx","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","UpdateEasyCaptcha","abort","borrow","borrow_mut","can_run","from","into","run","spawn","try_from","try_into","tx","type_id","update_captcha_configurations","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","AccountNotFound","BlacklistError","CaptchaError","CaptchaNotFound","ClosedForRegistration","DBError","DBErrorWrapper","EmailTaken","Err","Err","ErrorToResponse","InternalServerError","InternalServerError","NotAUrl","NotAnEmail","Ok","Ok","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","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","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","utils","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","utils","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","publish_benchmarks","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","publish_benchmarks","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","PAGE","PercentilePage","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","difficulty_factor","from","from","from","get_percentile","into","into","into","percentile","post_percentile","register","register","render_once","render_once_to","routes","services","time","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Utils","borrow","borrow_mut","from","get_sitemap","into","new","percentile","try_from","try_into","type_id","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","DBType","DEPRECATED_ENV_VARS","Database","DefaultDifficultyStrategy","ENV_VAR_CONFIG","Maria","Postgres","Redis","Server","Settings","Smtp","Survey","allow_demo","allow_registration","avg_traffic_difficulty","avg_traffic_time","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","broke_my_site_traffic_difficulty","broke_my_site_traffic_time","captcha","check_easy_captcha_config","check_url","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commercial","cookie_secret","database","database_type","debug","default_difficulty_strategy","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","domain","duration","enable_stats","env_override","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_url","gc","get_ip","instance_root_url","into","into","into","into","into","into","into","into","into","ip","new","nodes","password","peak_sustainable_traffic_difficulty","peak_sustainable_traffic_time","pool","pool","port","port","proxy_has_tls","queue_length","rate_limit","redis","reply","runners","salt","serialize","server","set_database_type","smtp","source_code","survey","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_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","url","url","url","url_prefix","username","vzip","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","clone_stats","clone_stats","config_fetches","confirms","default","default","default","deserialize","eq","eq","eq","fetch","fetch","fetch","fmt","fmt","fmt","from","from","from","into","into","into","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","SecretsStore","Survey","SurveyClientTrait","app_ctx","borrow","borrow","borrow_mut","borrow_mut","client","clone","clone","clone_into","clone_into","default","fmt","from","from","get","into","into","is_online","is_online","new","register","register","rm","schedule_upload_job","schedule_upload_job","set","start_job","start_job","store","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","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":[[0,"mcaptcha"],[163,"mcaptcha::api"],[164,"mcaptcha::api::v1"],[187,"mcaptcha::api::v1::account"],[228,"mcaptcha::api::v1::account::delete"],[240,"mcaptcha::api::v1::account::delete::runners"],[241,"mcaptcha::api::v1::account::email"],[278,"mcaptcha::api::v1::account::password"],[320,"mcaptcha::api::v1::account::routes"],[338,"mcaptcha::api::v1::account::secret"],[359,"mcaptcha::api::v1::account::username"],[397,"mcaptcha::api::v1::account::username::runners"],[398,"mcaptcha::api::v1::auth"],[431,"mcaptcha::api::v1::auth::routes"],[445,"mcaptcha::api::v1::auth::runners"],[499,"mcaptcha::api::v1::mcaptcha"],[508,"mcaptcha::api::v1::mcaptcha::create"],[551,"mcaptcha::api::v1::mcaptcha::create::runner"],[552,"mcaptcha::api::v1::mcaptcha::delete"],[579,"mcaptcha::api::v1::mcaptcha::easy"],[642,"mcaptcha::api::v1::mcaptcha::easy::routes"],[654,"mcaptcha::api::v1::mcaptcha::get"],[697,"mcaptcha::api::v1::mcaptcha::routes"],[714,"mcaptcha::api::v1::mcaptcha::stats"],[741,"mcaptcha::api::v1::mcaptcha::stats::routes"],[752,"mcaptcha::api::v1::mcaptcha::update"],[789,"mcaptcha::api::v1::mcaptcha::update::runner"],[790,"mcaptcha::api::v1::meta"],[917,"mcaptcha::api::v1::meta::routes"],[929,"mcaptcha::api::v1::notifications"],[934,"mcaptcha::api::v1::notifications::add"],[964,"mcaptcha::api::v1::notifications::get"],[997,"mcaptcha::api::v1::notifications::mark_read"],[1019,"mcaptcha::api::v1::notifications::routes"],[1032,"mcaptcha::api::v1::pow"],[1038,"mcaptcha::api::v1::pow::get_config"],[1084,"mcaptcha::api::v1::pow::routes"],[1102,"mcaptcha::api::v1::pow::verify_pow"],[1149,"mcaptcha::api::v1::pow::verify_token"],[1193,"mcaptcha::api::v1::routes"],[1213,"mcaptcha::api::v1::stats"],[1379,"mcaptcha::api::v1::stats::routes"],[1401,"mcaptcha::api::v1::survey"],[1457,"mcaptcha::api::v1::survey::routes"],[1470,"mcaptcha::data"],[1514,"mcaptcha::date"],[1536,"mcaptcha::db"],[1539,"mcaptcha::db::maria"],[1540,"mcaptcha::db::pg"],[1541,"mcaptcha::demo"],[1558,"mcaptcha::docs"],[1606,"mcaptcha::docs::routes"],[1619,"mcaptcha::easy"],[1634,"mcaptcha::email"],[1635,"mcaptcha::email::verification"],[1653,"mcaptcha::errors"],[1764,"mcaptcha::pages"],[1772,"mcaptcha::pages::auth"],[1777,"mcaptcha::pages::auth::login"],[1814,"mcaptcha::pages::auth::register"],[1851,"mcaptcha::pages::auth::routes"],[1865,"mcaptcha::pages::auth::sudo"],[1883,"mcaptcha::pages::errors"],[1936,"mcaptcha::pages::errors::routes"],[1948,"mcaptcha::pages::panel"],[1981,"mcaptcha::pages::panel::notifications"],[2021,"mcaptcha::pages::panel::routes"],[2037,"mcaptcha::pages::panel::settings"],[2087,"mcaptcha::pages::panel::settings::routes"],[2101,"mcaptcha::pages::panel::sitekey"],[2108,"mcaptcha::pages::panel::sitekey::add"],[2190,"mcaptcha::pages::panel::sitekey::delete"],[2200,"mcaptcha::pages::panel::sitekey::edit"],[2259,"mcaptcha::pages::panel::sitekey::list"],[2286,"mcaptcha::pages::panel::sitekey::routes"],[2308,"mcaptcha::pages::panel::sitekey::view"],[2340,"mcaptcha::pages::panel::utils"],[2380,"mcaptcha::pages::panel::utils::routes"],[2392,"mcaptcha::pages::routes"],[2415,"mcaptcha::pages::sitemap"],[2453,"mcaptcha::routes"],[2454,"mcaptcha::settings"],[2683,"mcaptcha::static_assets"],[2687,"mcaptcha::static_assets::filemap"],[2699,"mcaptcha::static_assets::static_files"],[2748,"mcaptcha::static_assets::static_files::assets"],[2859,"mcaptcha::stats"],[2926,"mcaptcha::survey"],[2968,"mcaptcha::widget"],[3008,"mcaptcha::widget::routes"],[3019,"alloc::string"],[3020,"actix_identity::cookie"],[3021,"actix_identity::middleware"],[3022,"actix_web::types::json"],[3023,"std::io::error"],[3024,"core::result"],[3025,"core::any"],[3026,"serde::de"],[3027,"actix_auth_middleware"],[3028,"actix_web::config"],[3029,"core::fmt"],[3030,"core::fmt"],[3031,"actix_web::config"],[3032,"db_core"],[3033,"libmcaptcha::defense"],[3034,"alloc::vec"],[3035,"derive_builder::error"],[3036,"db_core"],[3037,"argon2_creds::config"],[3038,"lettre::executor"],[3039,"lettre::transport::smtp::async_transport"],[3040,"libmcaptcha::pow"],[3041,"libmcaptcha::errors"],[3042,"alloc::sync"],[3043,"actix::address"],[3044,"libmcaptcha::system"],[3045,"libmcaptcha::master"],[3046,"libmcaptcha::cache"],[3047,"libmcaptcha::master::messages"],[3048,"libmcaptcha::pow"],[3049,"db_core"],[3050,"tokio::sync::oneshot"],[3051,"tokio::runtime::task::join"],[3052,"rust_embed_utils"],[3053,"actix_web::response::response"],[3054,"rust_embed"],[3055,"alloc::borrow"],[3056,"core::iter::traits::iterator"],[3057,"sailfish::runtime::render"],[3058,"sailfish::runtime::buffer"],[3059,"sailfish::runtime::render"],[3060,"libmcaptcha::errors"],[3061,"db_core::errors"],[3062,"url::parser"],[3063,"lettre::transport::smtp::error"],[3064,"argon2_creds::errors"],[3065,"actix::address"],[3066,"http::status"],[3067,"core::fmt"],[3068,"db_core"],[3069,"config::builder"],[3070,"config::error"],[3071,"core::future::future"],[3072,"core::pin"]],"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","","","survey secret store","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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","","","","","","","","","traffic 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","publish benchmarks","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","emits 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.","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).","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.","Returns the argument unchanged.","Calls U::from(self).","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.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","route handler that validates a PoW solution token","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","Builder for BuildDetails.","Error type for BuildDetailsBuilder","Health check return datatype","Builder for PercentileReq.","Error type for PercentileReqBuilder","Health check return datatype","Builder for PercentileResp.","Error type for PercentileRespBuilder","Uninitialized field","Uninitialized field","Uninitialized field","Custom validation error","Custom validation error","Custom validation error","","","","","","","","","","","","","","","","","","","","","Builds a new BuildDetails.","Builds a new PercentileReq.","Builds a new PercentileResp.","","","","","","","","","","","","","Create an empty builder, with all fields set to None or …","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.","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).","","","","","Get difficulty factor with max time limit for percentile …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","emits build details of the bninary","","","","","","","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).","","","","","mCaptcha/survey upload secret route","","","","","","","","","","","","","","","","","","","","","","","","","","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","survey secret store","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","update configurations","","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","Contains the error value","Contains the error value","","","","","","Contains the success value","Contains the success value","","","","","","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.","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.","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.","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","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).","","","","","","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,249,250,251,252,253,254,255,256,257,258,1,3,5,7,8,9,10,11,271,2,2,0,1,3,5,7,8,9,10,11,1,3,5,7,8,9,10,11,40,2,2,40,0,2,0,0,40,2,0,1,3,5,7,8,9,10,11,0,0,0,0,1,3,5,7,8,9,10,11,0,0,1,3,5,7,8,9,10,11,40,0,0,271,271,2,0,2,0,40,2,2,0,0,40,0,2,40,1,3,5,7,8,9,10,11,1,3,5,7,8,9,10,11,1,3,5,7,8,9,10,11,1,3,5,7,8,9,10,11,0,0,0,0,0,0,20,20,20,20,0,20,0,0,0,0,20,0,0,0,0,20,20,20,20,0,0,0,25,26,25,26,25,26,25,26,0,25,26,0,26,25,26,25,26,25,26,0,0,0,0,25,26,0,25,26,25,26,25,26,25,26,0,25,25,26,30,30,0,30,30,30,0,0,30,30,30,30,0,0,34,35,36,34,35,36,34,34,34,34,0,34,34,35,36,34,35,36,35,36,34,0,0,34,34,35,36,34,35,36,34,35,36,34,35,36,0,0,38,37,39,38,37,39,37,37,38,37,37,37,38,38,37,39,38,37,39,38,37,37,39,37,0,37,38,37,39,38,37,39,38,37,39,0,0,38,37,39,0,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,43,42,43,42,43,0,42,43,42,43,0,42,43,42,43,42,43,0,42,43,0,45,44,46,45,44,46,44,44,44,44,45,44,46,45,44,46,45,46,0,44,0,0,44,45,44,46,45,44,46,45,44,46,44,0,45,44,46,0,47,48,49,47,48,49,47,48,49,47,48,49,0,0,47,48,49,0,0,0,0,47,48,49,47,48,49,47,48,49,47,48,49,0,50,50,50,50,50,50,50,50,50,50,50,50,50,0,0,0,52,53,54,52,53,54,52,53,54,52,53,54,52,52,53,54,52,52,53,54,52,53,54,52,53,54,53,0,52,53,54,0,52,53,54,52,53,54,52,53,54,52,53,54,52,53,54,52,52,53,54,0,0,0,0,0,0,0,0,0,0,0,57,56,58,57,56,58,56,56,0,57,57,56,57,56,57,56,58,57,56,58,56,57,56,57,58,0,57,56,56,57,56,58,57,56,58,57,56,58,57,56,58,0,0,59,60,59,60,59,59,0,59,59,59,60,59,60,59,59,60,59,59,59,60,59,60,59,60,59,60,0,0,65,65,67,66,68,65,67,66,68,65,0,0,65,66,65,66,0,65,65,65,66,65,66,65,67,66,68,65,67,66,68,66,66,65,65,67,68,0,65,66,0,65,66,65,67,66,68,65,67,66,68,65,67,66,68,0,0,65,67,66,68,0,69,69,69,69,69,69,69,69,69,69,69,0,0,72,70,71,72,70,71,70,71,70,71,70,71,71,70,71,72,70,71,0,72,70,71,70,72,70,71,70,71,72,70,71,72,70,71,72,70,71,71,72,70,71,0,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,0,74,75,74,75,74,74,74,74,74,75,0,74,75,74,75,0,74,74,74,75,74,75,74,75,74,75,0,76,76,76,76,76,76,76,76,76,76,0,78,77,79,78,77,79,77,77,77,78,77,79,78,77,79,77,77,77,78,79,0,77,78,77,79,78,77,79,78,77,79,0,0,78,77,79,0,0,0,0,0,0,0,82,85,82,85,81,80,82,88,84,83,85,89,81,80,82,88,84,83,85,89,80,83,0,81,80,84,83,81,80,84,83,80,83,83,84,83,80,83,81,84,81,82,82,84,85,85,81,80,82,82,82,88,84,83,85,85,85,89,80,81,80,0,81,80,82,88,84,83,85,89,84,83,84,83,88,89,0,81,84,0,81,80,84,83,82,85,81,80,82,88,84,83,85,89,81,80,82,88,84,83,85,89,81,80,82,88,84,83,85,89,80,81,80,81,80,82,88,84,83,85,89,0,90,90,90,90,90,90,90,90,90,90,90,0,0,0,0,0,0,0,91,92,91,92,91,91,91,91,91,91,91,92,91,91,92,91,92,91,91,91,91,92,91,92,91,92,91,92,0,93,95,93,95,93,93,93,93,93,93,93,95,93,0,93,93,93,95,93,93,93,95,93,93,93,95,93,95,93,95,93,95,0,96,97,96,97,96,96,97,96,96,97,0,97,96,96,97,96,97,96,97,96,97,0,98,98,98,98,98,98,98,98,98,98,98,98,0,0,0,0,0,0,0,0,99,100,101,99,100,101,99,100,99,100,99,100,100,99,100,99,100,101,0,0,99,100,101,99,100,101,100,99,100,100,99,100,99,100,101,99,100,101,99,100,101,99,100,101,0,102,102,102,102,102,102,102,0,102,102,102,102,102,102,102,102,102,0,0,103,104,105,103,104,105,103,104,103,104,103,104,103,104,103,104,105,103,104,105,104,104,105,104,103,104,104,104,103,104,103,103,104,105,103,104,105,103,104,105,0,103,104,105,104,0,0,106,107,108,106,107,108,106,107,106,107,106,107,106,107,106,107,108,106,107,108,107,108,107,106,107,106,107,107,106,107,108,106,107,108,106,107,108,106,0,106,107,108,0,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,111,114,117,111,114,117,110,109,111,120,113,112,114,116,115,117,110,109,111,120,113,112,114,116,115,117,109,112,115,110,109,113,112,116,115,110,109,113,112,116,115,109,112,115,109,112,115,110,113,116,115,116,115,110,111,111,113,114,114,116,117,117,110,109,111,111,111,120,113,112,114,114,114,116,115,117,117,117,109,110,109,110,109,111,120,113,112,114,116,115,117,112,113,112,0,0,120,0,110,113,116,0,112,113,112,110,109,113,112,116,115,111,114,117,110,109,111,120,113,112,114,116,115,117,110,109,111,120,113,112,114,116,115,117,110,109,111,120,113,112,114,116,115,117,109,110,109,110,109,111,120,113,112,114,116,115,117,0,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,0,0,123,122,124,123,125,122,124,123,125,122,122,122,123,0,122,122,122,122,122,122,122,124,123,125,122,124,123,125,122,124,125,0,0,123,122,123,0,122,122,124,123,125,122,124,123,125,122,124,123,125,122,124,123,125,0,126,126,126,126,126,126,126,126,126,126,126,126,0,127,0,127,0,127,127,40,127,40,40,40,40,0,0,127,40,40,40,127,272,127,40,40,127,40,127,40,127,127,40,40,40,127,40,127,40,127,40,40,127,127,127,40,0,0,0,0,0,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,0,0,0,0,0,0,0,0,150,150,150,150,150,150,150,150,150,150,150,150,150,150,0,0,0,273,159,160,161,273,159,160,161,0,273,159,160,161,273,273,0,0,273,159,160,161,273,273,159,160,161,0,0,0,273,159,160,161,273,159,160,161,273,159,160,161,273,159,160,161,0,162,162,162,162,162,162,162,162,162,162,162,162,0,163,163,163,163,163,163,163,163,163,163,163,163,163,163,0,0,0,164,164,164,164,164,164,164,164,164,164,164,164,164,0,164,164,33,33,33,33,33,33,0,33,274,275,0,33,171,33,33,274,275,0,0,33,33,33,33,0,171,0,0,33,33,33,33,33,33,33,169,170,33,168,171,169,170,33,168,171,168,169,170,33,171,168,33,171,169,169,170,170,33,33,171,171,169,170,33,33,33,33,33,33,33,33,33,168,171,171,171,169,170,33,168,171,168,169,170,33,171,33,171,169,170,33,171,169,170,33,168,171,169,170,33,168,171,169,170,33,168,171,169,170,33,168,171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,183,184,185,183,184,185,183,183,183,184,183,184,185,183,184,185,0,185,183,183,183,183,184,185,183,184,185,183,184,185,183,184,185,0,0,0,187,186,187,188,186,187,188,186,186,186,187,186,187,188,186,187,188,0,188,186,186,186,186,187,188,186,187,188,186,187,188,186,187,188,0,189,189,189,189,189,189,189,189,189,189,189,189,189,0,0,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,0,0,0,0,0,196,197,195,196,197,198,195,196,197,198,195,195,196,197,0,195,196,197,198,195,196,197,198,195,195,198,195,195,0,0,195,195,195,196,197,198,195,196,197,198,195,196,197,198,195,196,197,198,0,199,199,199,199,199,199,199,199,199,199,199,0,0,200,202,200,202,200,200,200,202,200,202,200,0,0,202,200,200,0,0,0,0,200,200,200,202,200,202,200,202,0,200,202,0,0,0,203,204,205,203,204,205,203,203,204,205,203,203,203,204,205,203,204,203,204,0,203,203,205,204,204,203,204,205,203,204,205,203,204,205,203,204,205,0,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,0,0,207,208,209,210,207,208,209,210,207,207,0,207,207,208,209,210,207,208,209,210,208,209,210,207,207,0,207,0,0,207,207,208,209,210,207,208,209,210,207,208,209,210,0,207,207,208,209,210,0,211,211,211,211,211,211,211,211,211,211,211,211,211,0,0,0,0,0,0,0,0,0,0,0,0,214,215,0,213,214,215,212,216,213,217,214,215,212,216,213,217,213,212,213,212,213,212,213,214,215,0,212,213,212,212,213,214,215,212,216,213,217,214,215,212,216,213,217,212,213,216,217,212,213,212,213,212,213,214,215,212,216,213,217,214,215,212,216,213,217,214,215,212,216,213,217,214,215,212,216,213,217,218,218,0,218,218,218,218,218,218,218,0,0,0,0,219,221,220,222,219,221,220,222,219,220,219,220,219,0,220,219,221,220,222,219,221,220,222,219,220,219,219,219,220,220,219,221,222,219,220,219,220,219,220,219,221,220,222,219,221,220,222,219,221,220,222,219,221,220,222,0,0,223,224,223,224,223,223,223,224,223,224,0,223,224,223,223,223,223,223,224,223,224,223,224,223,224,0,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,0,0,226,228,226,228,226,226,226,226,228,226,228,226,226,226,226,226,228,226,226,226,226,226,228,226,228,226,228,0,226,228,0,0,229,230,231,229,230,231,229,229,229,229,230,231,0,229,230,231,229,0,230,231,229,229,0,0,229,229,229,230,231,229,230,231,229,230,231,229,230,231,0,232,232,232,232,232,232,232,232,232,232,232,0,0,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,0,0,234,233,234,235,233,234,235,233,233,233,234,233,233,234,235,233,234,235,235,233,233,0,233,233,234,235,233,234,235,233,234,235,233,233,234,235,0,0,0,0,0,0,0,239,239,0,0,0,0,0,2,2,62,62,236,237,62,238,239,240,241,242,2,236,237,62,238,239,240,241,242,2,62,62,2,2,2,236,237,62,238,239,240,241,242,2,236,237,62,238,239,240,241,242,2,2,236,2,240,2,237,236,237,62,238,239,240,241,242,2,236,62,237,2,236,237,62,238,239,240,241,242,2,236,236,236,236,237,237,237,237,62,62,62,62,238,238,238,238,239,239,239,239,240,240,240,240,241,241,241,241,242,242,242,242,2,2,2,2,236,237,62,238,239,239,240,241,242,2,236,237,62,238,239,240,241,242,2,238,239,237,236,242,236,237,62,238,239,240,241,242,2,236,2,242,238,62,62,240,241,236,238,236,237,242,2,238,237,237,239,2,2,2,2,2,236,237,62,238,239,240,241,242,2,239,236,237,62,238,239,240,241,242,2,236,237,62,238,239,240,241,242,2,236,237,62,238,239,240,241,242,2,238,240,241,236,238,236,237,62,238,239,240,241,242,2,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,0,0,0,276,247,277,248,276,247,277,248,0,276,247,277,248,276,276,277,277,0,0,276,247,277,248,276,276,277,277,247,248,0,276,247,277,248,276,247,277,248,276,247,277,248,276,247,277,248,0,0,0,0,0,0,0,0,0,0,0,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,249,250,251,252,253,254,255,256,257,258,0,0,0,0,0,227,259,260,227,259,260,227,259,260,227,259,260,261,259,260,227,227,227,259,260,227,227,259,260,262,259,260,227,259,260,227,259,260,227,259,260,262,259,260,262,259,260,262,259,260,227,227,227,259,260,227,259,260,227,259,260,227,259,260,227,259,260,0,0,0,265,134,265,134,265,265,134,265,134,265,134,134,134,265,134,134,265,266,265,265,266,265,134,266,265,134,266,265,134,134,265,134,265,134,265,134,265,134,265,0,0,0,0,268,267,268,269,267,268,269,267,267,268,267,268,269,267,268,269,267,269,267,267,0,0,0,267,267,268,269,267,268,269,267,268,269,267,268,269,0,270,270,270,270,270,270,270,270,270,270],"f":"```````````````````````````````````````````````````````{ce{}{}}000000000000000```````````{bd}{fh}{jl}{nl}{A`l}{Abl}{Adl}{AfAh}````{cc{}}0000000{d{{Al{Aj}}}}{{}An};;;;;;;;`{{}{{Bb{B`}}}}````````````````{c{{Bd{e}}}{}{}}000000000000000{cBf{}}0000000>>>>>>>>``````>>{c{{Bd{Bh}}}Bj}6{{}{{Bn{Bl}}}}{ce{}{}}``````{C`B`}``5541```1111{CbCb}{CdCd}{{ce}B`{}{}}0`{c{{Bd{Cb}}}Bj}{c{{Bd{Cd}}}Bj}``{{CbCf}Ch}{{CdCf}Ch}{cc{}}099````{{Cbc}BdCj}{{Cdc}BdCj}:;;????>>``;;;;`2;{{ClCn}B`}`;{c{{Bd{e}}}{}{}}0{cBf{}}>{{lD`}{{Bd{B`Db}}}}`??????{DdDd}<{c{{Bd{Dd}}}Bj}``{{DdCf}Ch}999{ce{}{}}00{{DfCn}B`}{{DhCn}B`}{{Ddc}BdCj}{C`B`}`4::::::999444``444444{DjDj}{{ce}B`{}{}}``{c{{Bd{Dj}}}Bj}{{DjCf}Ch}{cc{}}{DjDl}11:::```{{DnCn}B`}{{Djc}BdCj}8<{c{{Bd{e}}}{}{}}00000{cBf{}}00{{lDlE`}{{Bd{B`Db}}}}`???`??``6`?{{}Eb}332`````{ce{}{}}000088`00{{EdCn}B`}{{EfCn}B`}?666655`22`222222{EhEh}>{c{{Bd{Eh}}}Bj}{{EhCf}Ch}===555{{EjCn}B`}{{ElCn}B`}`{{Ehc}BdCj}{C`B`}`9======<<<``999{{CbD`}{{Bd{CdDb}}}}::::::{cc{}}00;;;``{{EnCn}B`}{{F`Cn}B`}{{FbCn}B`}``5`{c{{Bd{e}}}{}{}}00000{cBf{}}00{ce{}{}}00`006{{Fd{Ff{l}}}Ah}1``{{}Fd}`4432```222222{FhFh}{FjFj}{FlFl}{{ce}B`{}{}}00`{c{{Bd{Fh}}}Bj}{c{{Bd{Fj}}}Bj}{c{{Bd{Fl}}}Bj}`{{FhCf}Ch}{{FjCf}Ch}{{FlCf}Ch}{cc{}}00===`{{FjD`}{{Bd{AhDb}}}}```{{FhD`}{{Bd{B`Db}}}}{{Fhc}BdCj}{{Fjc}BdCj}{{Flc}BdCj}{ce{}{}}00{c{{Bd{e}}}{}{}}00000{cBf{}}00`222````{FnAh}`{C`B`}````444444{G`G`}{{ce}B`{}{}}``{c{{Bd{Gb}}}Bj}{c{{Bd{G`}}}Bj}`{{G`Cf}Ch}???999````{{GdCn}B`}`{{Gbc}BdCj}{{G`c}BdCj}<;;;;;;:::<<<{{GbD`l}{{Bd{G`Db}}}}`===={GfGf}8`{c{{Bd{Gf}}}Bj}{{GfCf}Ch}{cc{}}0{ce{}{}}0``{{GhCn}B`}{{Gfc}BdCj}2{c{{Bd{e}}}{}{}}000{cBf{}}044```44444444`{{GjGl}{{Bd{{H`{Gn}}Db}}}}{{D`Gj}{{Bd{{Ff{{H`{Gn}}}}Db}}}}{HbHb}{HdHd}{{ce}B`{}{}}0`{{}Hb}`{c{{Bd{Hb}}}Bj}{c{{Bd{Hd}}}Bj}{{HbCf}Ch}{{HdCf}Ch}????>>>>````{{HfCn}B`}{{HhCn}B`}`{{Hbc}BdCj}{{Hdc}BdCj}{C`B`}{ce{}{}}0{c{{Bd{e}}}{}{}}0000000{cBf{}}000`{{D`HdAh}{{Bd{B`Db}}}}3333`33`{cc{}}4{{}Hj}443`5``555555{HlHl}{HnHn}{{ce}B`{}{}}0{c{{Bd{Hl}}}Bj}{c{{Bd{Hn}}}Bj}`{{HlCf}Ch}{{HnCf}Ch}888`<<<`{{I`Cn}B`}{{Hlc}BdCj}{{Hnc}BdCj}??>>>>>>===`???`??```;`?{{}Ib}`??>``{ce{}{}}`0000{IdId}:{c{{Bd{Id}}}Bj}{{IdCf}Ch}{cc{}}0`44`{{IfCn}B`}`{{Idc}BdCj}6{c{{Bd{e}}}{}{}}000{cBf{}}088`884`8{{}Ih}2219`999999`{c{{Bd{Ij}}}Bj}`666:::```{{IlCn}B`}{{InCn}B`}`{{Ijc}BdCj}666666555``==={{IjD`l}{{Bd{B`Db}}}}``````````>>>>>>>>>>>>>>>>{J`{{Bd{JbJd}}}}{Jf{{Bd{JhJj}}}}`{JbJb}{J`J`}{JhJh}{JfJf}{{ce}B`{}{}}000{{}J`}{{}Jf}{{JfJl}Jf}``21{c{{Bd{Jb}}}Bj}{c{{Bd{Jh}}}Bj}{{JbCf}Ch}{{JdCf}Ch}0{{JhCf}Ch}{{JjCf}Ch}0{cc{}}00{AhJd}{JnJd}222{AhJj}{JnJj}44{{J`l}J`}```{ce{}{}}0000000{{{Ff{Jl}}}Jl}{{Jf{Ff{Jl}}}Jf}``{{K`Cn}B`}{{KbCn}B`}`{{Jbc}BdCj}{{Jhc}BdCj}{C`B`}7777{cAh{}}0{c{{Bd{e}}}{}{}}000000000000000{cBf{}}0000000;``::::::::`::`{cc{}}`;{{}Kd}332<````5``<<<<{KfKf}{{ce}B`{}{}}{{}Kf}{c{{Bd{Kf}}}Bj}{{KfKf}Jl}{{KfCf}Ch}77`{ce{}{}}0`{{KhCn}B`}{{Kfc}BdCj}`2<<<<;;22`2222{KjKj}8{{}Kj}{c{{Bd{Kj}}}Bj}{{KjKj}Jl}>{KlKj}?{{{H`{Kl}}}{{H`{Kj}}}}```88```{{KnCn}B`}{{Kjc}BdCj}:{c{{Bd{e}}}{}{}}000{cBf{}}0<<`<<<<{c{{Bd{L`}}}Bj}{cc{}}0`>>`{{LbCn}B`}{{L`c}BdCj}555544{ce{}{}}0``003`0`{{}Ld}7761```{C`B`}````222222{LfLf}{LhLh}{{ce}B`{}{}}0{c{{Bd{Lf}}}Bj}{c{{Bd{Lh}}}Bj}`{{LfCf}Ch}{{LhCf}Ch}<<<`{{D`l}{{Bd{B`Db}}}}:::``{{LjCn}B`}`{{Lfc}BdCj}{{Lhc}BdCj}`=={c{{Bd{e}}}{}{}}00000{cBf{}}00???`??{cc{}}{Lll}`{ce{}{}}{{}Ll}``5542`2`1``111111{LnLn}{M`M`}{{ce}B`{}{}}0{c{{Bd{Ln}}}Bj}{c{{Bd{M`}}}Bj}{{LnCf}Ch}{{M`Cf}Ch}:::888``{{MbCn}B`}`{{Lnc}BdCj}{{M`c}BdCj}``;;`??????>>>`;;;```;;;;;;{MdMd}{MfMf}99{c{{Bd{Md}}}Bj}{c{{Bd{Mf}}}Bj}{{MdCf}Ch}{{MfCf}Ch}{cc{}}00{ce{}{}}00`{{MhCn}B`}`{{Mdc}BdCj}{{Mfc}BdCj}33`{c{{Bd{e}}}{}{}}00000{cBf{}}00``555````55`6{{Bl{Ff{l}}}Ah}6`{{}Bl}````3327```````````````77777777777777777777{Mj{{Bd{MlMn}}}}{N`{{Bd{NbNd}}}}{Nf{{Bd{NhNj}}}}{MlMl}{MjMj}{NbNb}{N`N`}{NhNh}{NfNf}{{ce}B`{}{}}00000{{}Mj}{{}N`}{{}Nf}210{c{{Bd{Ml}}}Bj}{c{{Bd{Nb}}}Bj}{c{{Bd{Nh}}}Bj}{{Nf{Ff{Nl}}}Nf}``{{MlCf}Ch}{{MnCf}Ch}0{{NbCf}Ch}{{NdCf}Ch}0{{NhCf}Ch}{{NjCf}Ch}0{cc{}}0{AhMn}{JnMn}2222{AhNd}3{JnNd}44{JnNj}5{AhNj}{{Mjl}Mj}``{ce{}{}}000000000{{N`Nn}N`}``{{D`Nb}{{Bd{NhDb}}}}`{{O`Cn}B`}`{{Mlc}BdCj}{{Nbc}BdCj}{{Nhc}BdCj}{C`B`}{{N`Nl}N`}``888888{cAh{}}00{c{{Bd{e}}}{}{}}0000000000000000000{cBf{}}000000000<``;;;;;;;;;;`;;{ObOb}{{ce}B`{}{}}{c{{Bd{Ob}}}Bj}{{ObOb}Jl}{{ce}Jl{}{}}000{{ObCf}Ch}{cc{}}{ce{}{}}{{}Ob}`{{Obc}BdCj}2;;:2```22222222{OdOd}9{c{{Bd{Od}}}Bj}{c{{Bd{Of}}}Bj}`{{OdOd}Jl}9999{{OdCf}Ch}88887777`{{OhCn}B`}{{OjCn}B`}```{{Odc}BdCj}{{Ofc}BdCj}{C`B`}<{c{{Bd{e}}}{}{}}0000000{cBf{}}000>>>>`>>`?{{OllFn}Ah}?{{}Ol}`332{ce{}{}}`````{{OnA`}{{Bd{B`Db}}}}1111`````{cc{}}0{{}Ab}{d{{Ff{{Af{Ad}}}}}}{{OnAh}{{Aj{{Ff{Ah}}}}}}`55`{dOn}{{dAl}{{An{E`}}}}{{d{AA`{c}}{AA`{e}}}{{AAb{ec}}}AAdAAf}{E`{{Bd{B`Db}}}}{{OnAAh}{{Bd{B`Db}}}}{{OnAAj}{{Bd{B`Db}}}}```????>>2{{OnAAl}{{Aj{Jl}}}}{{OnAAnAh}{{Aj{{AB`{AhNl}}}}}}==`````=={ABbABb}{{ce}B`{}{}}{ABbAh}{{ABbCf}Ch}{ABdAh}{cc{}}{ce{}{}}{ABfABb}5`1{c{{Bd{e}}}{}{}}0{cBf{}}3```{{{Ff{d}}}{{ABj{ABh}}}}0```{ABlB`}55{D`{{Bd{B`Db}}}}760{{D`Nl{ABn{B`}}}{{Bd{{AC`{B`}}Db}}}}{{D`Nl}{{Bd{{AB`{ABl{AC`{B`}}}}Db}}}}66`58```88888888`9999{l{{Ff{ACb}}}}0{lACd}`::::{{}ACf}{{}{{`{{ACl{}{{ACh{{ACj{l}}}}}}}}}}{{ACnCn}B`}{{AD`Cn}B`}{{ADbCn}B`}`{C`B`}`>>>>>>>>===={ce{}{}}000``00{cc{}}`1{{}ADd}`{c{{Bd{e}}}{}{}}0{cBf{}}4`{ADfB`}55{{{ABn{B`}}}Jl}56{{D`Nl{ABn{B`}}}{{Bd{{AC`{B`}}Db}}}}{{D`Nl}{{Bd{{AB`{ADf{AC`{B`}}}}Db}}}}55`4{{D`{ABn{B`}}}{{Bd{B`Db}}}}9```99{ADhADh}{{ce}B`{}{}}:;{lADh}{ADhADj}{{ADhADl}{{Bd{B`ADn}}}}>;;:{{E`ll}{{Bd{B`Db}}}}`?``````````````````````````````````??????????{c{{Bd{AE`}}}Bj}{{AEbAEb}Jl}{{AEdAEd}Jl}{{DbDb}Jl}{{AEfAEf}Jl}`{DbACd}{AEfACd}{{AEbCf}Ch}0{{AEdCf}Ch}0{{DbCf}Ch}0{{AEfCf}Ch}0{cc{}}00{AEhDb}{AEjDb}{AElDb}{AEnDb}{AF`Db}{AFbDb}{AFdDb}{AFfDb}8{AEnAEf}9{DbAEf}{ce{}{}}0000{{AE`c}BdCj}{AEb{{Ff{AFh}}}}{AEd{{Ff{AFh}}}}{Db{{Ff{AFh}}}}{AEf{{Ff{AFh}}}}{DbAFj}{AEfAFj}{cAh{}}000{c{{Bd{e}}}{}{}}000000000{cBf{}}0000:::::```{{}{{Bn{AFl}}}}``{C`B`}````0`````<<<<<<{AFnAFn}{{ce}B`{}{}}{{}AFn}{AG`Ah}{cc{}}00{ce{}{}}00`{{AGbCn}B`}{AFnADj}{{AFnADl}{{Bd{B`ADn}}}}3<<<<<<;;;333````333333{AGdAGd}8{{}AGd}{AGfAh}777666`{{AGhCn}B`}{AGdADj}{{AGdADl}{{Bd{B`ADn}}}}9{c{{Bd{e}}}{}{}}00000{cBf{}}00;;;`;;<{{AGj{Ff{l}}}Ah}{{}{{AGl{l}}}}=``{{}AGj}443>``>>{{{AGn{ce}}}{{AGn{ce}}}{AH`AHbAHd}{AH`AHbAHd}}{{ce}B`{}{}}`{cc{}}{ce{}{}}{{l{Ff{{H`{{AB`{ce}}}}}}}{{AGn{ce}}}{AH`AHb}{AH`AHb}}{{{AGn{ce}}}ADj{AH`AHb}{AH`AHb}}{{{AGn{ce}}ADl}{{Bd{B`ADn}}}{AH`AHb}{AH`AHb}}3;;:`3```````33333333{AHfAHf}6{AHhAh}{AHjAh}`77776666`{{ll}AHf}{{AHlCn}B`}{AHfADj}{{AHfADl}{{Bd{B`ADn}}}}`{C`B`}`;{c{{Bd{e}}}{}{}}0000000{cBf{}}000====`==>`={{}AHn}221`>``>>>>{AI`AI`}{{ce}B`{}{}}{cc{}}0{ce{}{}}0{{{H`{AIb}}}AI`}``{{AIdCn}B`}{AI`ADj}{{AI`ADl}{{Bd{B`ADn}}}}`;```4::::99`44```444444{KlAIf}666``555```{{{H`{AIf}}}AIh}`{AIfAh}`{{AIjCn}B`}{AIhADj}{{AIhADl}{{Bd{B`ADn}}}}{c{{Bd{e}}}{}{}}00000{cBf{}}00<<<`<<={{}{{AGl{l}}}}`={{}AIl}```332`>``>>>>>>>>{AInAIn}{{ce}B`{}{}}``{cc{}}000{ce{}{}}000{{AJ`Cn}B`}{{AJbCn}B`}{{AJdCn}B`}{AInADj}{{AInADl}{{Bd{B`ADn}}}}``{C`B`}`6========<<<<``6666`66`7;`6{{}AJf}>>=`7`````1``````````777777777777`{AJhAJh}{AJjAJj};;{{}AJh}{{}AJj}{AJlAh}{AJnAh}``````>>>>>>======``{{AK`Cn}B`}{{AKbCn}B`}{AJhADj}{AJjADj}{{AJhADl}{{Bd{B`ADn}}}}{{AJjADl}{{Bd{B`ADn}}}}{ce{}{}}0{c{{Bd{e}}}{}{}}00000000000{cBf{}}0000022222222`{cc{}}3{{AKdCn}B`}3324````44444444{AKfAKf}{AKhAKh}{{ce}B`{}{}}0```44447777````{{AIb{H`{Gn}}AhJl}AKf}{{AhHb}AKh}``{{AKjCn}B`}{{AKlCn}B`}{AKfADj}{AKhADj}{{AKfADl}{{Bd{B`ADn}}}}{{AKhADl}{{Bd{B`ADn}}}}??>>>>>>>>====????``????{AKnAKn}9=={ce{}{}}0`{{{H`{AIb}}}AKn}{{AL`Cn}B`}{AKnADj}{{AKnADl}{{Bd{B`ADn}}}}`4{c{{Bd{e}}}{}{}}000{cBf{}}066```66```{cc{}}{{ALbl}Ah}00{{}{{AGl{l}}}}19`{{}ALb}554`:``::::{ALdALd}{{ce}B`{}{}}`55<<```{{ALfAIb{H`{Gn}}AhJl}ALd}`{{ALhCn}B`}{ALdADj}{{ALdADl}{{Bd{B`ADn}}}}`{ce{}{}}<<<<;;`00``000000{ALjALj}6`;;;`111``{{ALlCn}B`}{{ALnCn}B`}{ALjADj}{{ALjADl}{{Bd{B`ADn}}}}`{C`B`}`6{c{{Bd{e}}}{}{}}00000{cBf{}}00888`88{cc{}}{{}{{AGl{l}}}}:{{}AM`}`443;````;;``2{{AFl{Ff{l}}}Ah}2`<{{}AFl}`````665=```======{AMbAMb}{{ce}B`{}{}}{{}AMb}{AMdAh}`888{ce{}{}}00{{AMfCn}B`}{AMbADj}{{AMbADl}{{Bd{B`ADn}}}}`3>>>>>>===`333?`````````````````333333333333333333```{dB`}0{AMhAMh}{AMjAMj}{GlGl}{AMlAMl}{AMnAMn}{AN`AN`}{ANbANb}{ANdANd}{dd}{{ce}B`{}{}}00000000``````{c{{Bd{AMh}}}Bj}{c{{Bd{AMj}}}Bj}{c{{Bd{Gl}}}Bj}{c{{Bd{AMl}}}Bj}{c{{Bd{AMn}}}Bj}{c{{Bd{AN`}}}Bj}{c{{Bd{ANb}}}Bj}{c{{Bd{ANd}}}Bj}{c{{Bd{d}}}Bj}```{{{ANh{ANf}}}{{ANh{ANf}}}}{{AMhAMh}Jl}{{AMjAMj}Jl}{{GlGl}Jl}{{AMlAMl}Jl}{{AMnAMn}Jl}{{AN`AN`}Jl}{{ANbANb}Jl}{{ANdANd}Jl}{{dd}Jl}{{ce}Jl{}{}}00000000000000000000000000000000000{{AMhCf}Ch}{{AMjCf}Ch}{{GlCf}Ch}{{AMlCf}Ch}{{AMnCf}Ch}0{{AN`Cf}Ch}{{ANbCf}Ch}{{ANdCf}Ch}{{dCf}Ch}{cc{}}00000000`{ANj{{Bd{AMnANl}}}}`{AMhAh}`{ce{}{}}00000000`{{}{{Bd{dANl}}}}```````````````{{AMnc}BdCj}`{dB`}```333333333{cAh{}}{c{{Bd{e}}}{}{}}00000000000000000{cBf{}}00000000`````666666666``{C`B`}``77`:{{hl}{{Ff{l}}}}8{{}h}4439```99999999`<<<<{l{{Ff{ACb}}}}000{lACd}0;;;;{{}{{`{{ACl{}{{ACh{{ACj{l}}}}}}}}}}{{}ACf}01{{ANnCn}B`}{{AO`Cn}B`}`::::::::9999????`````````````````````????????????????????{AOb{{AB`{ll}}}}{AOd{{AB`{ll}}}}{AOf{{AB`{ll}}}}{AOh{{AB`{ll}}}}{AOj{{AB`{ll}}}}{AOl{{AB`{ll}}}}{AOn{{AB`{ll}}}}{B`{{AB`{ll}}}}{Bb{{AB`{ll}}}}{Bd{{AB`{ll}}}}{cc{}}000000000{ce{}{}}000000000{c{{Bd{e}}}{}{}}0000000000000000000{cBf{}}0000000002222222222`````222222{ALfALf}{BfBf}{BhBh}{{ce}B`{}{}}00{Bj{{ABj{Bl}}}}{c{{ABj{Bl}}}{}}0``{{}ALf}{{}Bf}{{}Bh}{c{{Bd{ALf}}}Bj}{{ALfALf}Jl}{{BfBf}Jl}{{BhBh}Jl}{{BlE`ll}{{BA`{{ABj{Bn}}}}}}{{BfE`ll}{{BA`{{ABj{Bn}}}}}}{{BhE`ll}{{BA`{{ABj{Bn}}}}}}{{ALfCf}Ch}{{BfCf}Ch}{{BhCf}Ch}{cc{}}00{ce{}{}}00{{BlE`l}{{BA`{{ABj{Bn}}}}}}{{BfE`l}{{BA`{{ABj{Bn}}}}}}{{BhE`l}{{BA`{{ABj{Bn}}}}}}210210{{ALfc}BdCj}`444{c{{Bd{e}}}{}{}}00000{cBf{}}00666````6666`{AlAl}{BAbBAb}{{ce}B`{}{}}0{{}Al}{{AlCf}Ch}<<{{All}{{Ff{Ah}}}}<<{BAd{{BA`{{ABj{Bn}}}}}}{BAb{{BA`{{ABj{Bn}}}}}}{D`BAb}21{{All}B`}32{{AlAhAh}B`}43`{ce{}{}}0====<<00`````000000{BAfBAf}:{BAhAh}{cc{}}00333{{}BAf}{{BAjCn}B`}{BAfADj}{{BAfADl}{{Bd{B`ADn}}}}`{C`B`}`8{c{{Bd{e}}}{}{}}00000{cBf{}}00:::`::7:{{}BAl}221`;","c":[],"p":[[5,"SETTINGS",0],[5,"Settings",2454],[5,"FILES",0],[5,"FileMap",2687],[5,"JS",0],[1,"str"],[5,"CSS",0],[5,"MOBILE_CSS",0],[5,"VERIFICATIN_WIDGET_JS",0],[5,"VERIFICATIN_WIDGET_CSS",0],[5,"SOURCE_FILES_OF_INSTANCE",0],[5,"String",3019],[5,"CookieIdentityPolicy",3020],[5,"IdentityService",3021],[5,"JsonConfig",3022],[1,"unit"],[8,"Result",3023],[6,"Result",3024],[5,"TypeId",3025],[5,"RedirectQuery",164],[10,"Deserializer",3026],[5,"Routes",1193],[5,"Authentication",3027],[5,"ServiceConfig",3028],[5,"AccountCheckPayload",187],[5,"AccountCheckResp",187],[5,"Formatter",3029],[8,"Result",3029],[10,"Serializer",3030],[5,"delete_account",228],[5,"AppService",3028],[8,"AppData",0],[6,"ServiceError",1653],[5,"Email",241],[5,"email_exists",241],[5,"set_email",241],[5,"ChangePasswordReqest",278],[5,"UpdatePassword",278],[5,"update_user_password",278],[5,"Data",1470],[5,"Account",320],[5,"get_secret",338],[5,"update_user_secret",338],[5,"Username",359],[5,"username_exists",359],[5,"set_username",359],[5,"register",398],[5,"login",398],[5,"signout",398],[5,"Auth",431],[6,"Option",3031],[5,"Register",445],[5,"Login",445],[5,"Password",445],[1,"usize"],[5,"MCaptchaDetails",508],[5,"CreateCaptcha",508],[5,"create",508],[5,"DeleteCaptcha",552],[5,"delete",552],[5,"TrafficPattern",3032],[5,"DefaultDifficultyStrategy",2454],[5,"Level",3033],[5,"Vec",3034],[5,"TrafficPatternRequest",579],[5,"UpdateTrafficPattern",579],[5,"create",579],[5,"update",579],[5,"Easy",642],[5,"Levels",654],[5,"I32Levels",654],[5,"get_captcha",654],[5,"Captcha",697],[5,"StatsPayload",714],[5,"get",714],[5,"Stats",741],[5,"UpdateCaptcha",752],[5,"update_key",752],[5,"update_captcha",752],[5,"BuildDetailsBuilder",790],[5,"BuildDetails",790],[6,"BuildDetailsBuilderError",790],[5,"HealthBuilder",790],[5,"Health",790],[6,"HealthBuilderError",790],[1,"bool"],[5,"UninitializedFieldError",3035],[5,"build_details",790],[5,"health",790],[5,"Meta",917],[5,"AddNotificationRequest",934],[5,"add_notification",934],[5,"NotificationResp",964],[5,"Notification",3032],[5,"get_notification",964],[5,"MarkReadReq",997],[5,"mark_read",997],[5,"Notifications",1019],[5,"GetConfigPayload",1038],[5,"ApiPoWConfig",1038],[5,"get_config",1038],[5,"PoW",1084],[5,"ValidationToken",1102],[5,"ApiWork",1102],[5,"verify_pow",1102],[5,"CaptchaValidateResp",1149],[5,"VerifyCaptchaResultPayload",1149],[5,"validate_captcha_token",1149],[5,"BuildDetailsBuilder",1213],[5,"BuildDetails",1213],[6,"BuildDetailsBuilderError",1213],[5,"PercentileReqBuilder",1213],[5,"PercentileReq",1213],[6,"PercentileReqBuilderError",1213],[5,"PercentileRespBuilder",1213],[5,"PercentileResp",1213],[6,"PercentileRespBuilderError",1213],[1,"u32"],[1,"f64"],[5,"percentile_benches",1213],[5,"Stats",1379],[5,"Page",1401],[5,"SurveySecretUpload",1401],[5,"download",1401],[5,"secret",1401],[5,"Survey",1457],[6,"SystemGroup",1470],[5,"AddSite",3036],[5,"Config",3037],[5,"Tokio1Executor",3038],[5,"AsyncSmtpTransport",3039],[5,"PoWConfig",3040],[8,"CaptchaResult",3041],[5,"SecretsStore",2926],[5,"Arc",3042],[5,"Addr",3043],[5,"System",3044],[10,"Master",3045],[10,"Save",3046],[5,"RemoveCaptcha",3036],[5,"Rename",3036],[5,"VerifyCaptchaResult",3047],[5,"Work",3040],[1,"tuple"],[5,"Date",1514],[5,"OffsetDateTime",3048],[1,"i64"],[10,"MCDatabase",3032],[5,"Box",3049],[5,"DemoUser",1541],[5,"Receiver",3050],[5,"JoinHandle",3051],[5,"EmbeddedFile",3052],[5,"HttpResponse",3053],[6,"Filenames",3054],[17,"Item"],[6,"Cow",3055],[10,"Iterator",3056],[5,"dist",1558],[5,"spec",1558],[5,"index",1558],[5,"Docs",1606],[5,"UpdateEasyCaptcha",1619],[5,"IndexPage",1635],[8,"RenderResult",3057],[5,"Buffer",3058],[6,"RenderError",3057],[5,"ErrorToResponse",1653],[5,"SmtpErrorWrapper",1653],[5,"DBErrorWrapper",1653],[6,"PageError",1653],[5,"ValidationErrors",3059],[6,"CaptchaError",3041],[5,"RecvError",3060],[6,"DBError",3061],[6,"ParseError",3062],[5,"Error",3063],[6,"CredsError",3064],[6,"MailboxError",3043],[10,"Error",3065],[5,"StatusCode",3066],[5,"Routes",2392],[5,"IndexPage",1777],[5,"INDEX",1777],[5,"login",1777],[5,"IndexPage",1814],[5,"INDEX",1814],[5,"join",1814],[5,"Auth",1851],[1,"array"],[5,"SudoPage",1865],[10,"Display",3029],[10,"Render",3057],[10,"Clone",3067],[5,"ErrorPage",1883],[5,"INTERNAL_SERVER_ERROR_BODY",1883],[5,"UNKNOWN_ERROR_BODY",1883],[5,"error",1883],[5,"Errors",1936],[5,"IndexPage",1948],[5,"Captcha",3032],[5,"panel",1948],[5,"Notification",1981],[5,"IndexPage",1981],[5,"notifications",1981],[5,"Panel",2021],[5,"IndexPage",2037],[5,"settings",2037],[5,"delete_account",2037],[5,"update_secret",2037],[5,"Settings",2087],[5,"AdvanceIndexPage",2108],[5,"EasyIndexPage",2108],[5,"ADVANCE_INDEX",2108],[5,"EASY_INDEX",2108],[5,"advance",2108],[5,"easy",2108],[5,"delete_sitekey",2190],[5,"AdvanceEditPage",2200],[5,"EasyEditPage",2200],[5,"advance",2200],[5,"easy",2200],[5,"IndexPage",2259],[5,"list_sitekeys",2259],[5,"Sitekey",2286],[5,"IndexPage",2308],[5,"CaptchaStats",2859],[5,"view_sitekey",2308],[5,"PercentilePage",2340],[5,"get_percentile",2340],[5,"post_percentile",2340],[5,"Utils",2380],[5,"IndexPage",2415],[5,"INDEX",2415],[5,"sitemap",2415],[5,"Server",2454],[5,"Captcha",2454],[5,"Smtp",2454],[6,"DBType",2454],[5,"Database",2454],[5,"Redis",2454],[5,"Survey",2454],[5,"DefaultState",3068],[5,"ConfigBuilder",3068],[5,"Url",3069],[6,"ConfigError",3070],[5,"static_files",2699],[5,"favicons",2699],[5,"KEY",2748],[5,"GITHUB",2748],[5,"HOME",2748],[5,"SETTINGS_ICON",2748],[5,"CREDIT_CARD",2748],[5,"HELP_CIRCLE",2748],[5,"MESSAGE",2748],[5,"DOCS_ICON",2748],[5,"MCAPTCHA_TRANS_ICON",2748],[5,"BAR_CHART",2748],[5,"Real",2859],[5,"Dummy",2859],[10,"CloneStats",2859],[10,"Stats",2859],[10,"Future",3071],[5,"Pin",3072],[5,"Survey",2926],[10,"SurveyClientTrait",2926],[5,"IndexPage",2968],[5,"INDEX_PAGE",2968],[5,"show_widget",2968],[5,"Widget",3008],[8,"ArcData",0],[8,"Mailer",1470],[5,"Asset",1558],[8,"ServiceResult",1653],[8,"PageResult",1653],[5,"Asset",2699],[5,"Favicons",2699]],"b":[[837,"impl-Display-for-BuildDetailsBuilderError"],[838,"impl-Debug-for-BuildDetailsBuilderError"],[840,"impl-Debug-for-HealthBuilderError"],[841,"impl-Display-for-HealthBuilderError"],[845,"impl-From%3CString%3E-for-BuildDetailsBuilderError"],[846,"impl-From%3CUninitializedFieldError%3E-for-BuildDetailsBuilderError"],[850,"impl-From%3CString%3E-for-HealthBuilderError"],[851,"impl-From%3CUninitializedFieldError%3E-for-HealthBuilderError"],[1276,"impl-Debug-for-BuildDetailsBuilderError"],[1277,"impl-Display-for-BuildDetailsBuilderError"],[1279,"impl-Display-for-PercentileReqBuilderError"],[1280,"impl-Debug-for-PercentileReqBuilderError"],[1282,"impl-Display-for-PercentileRespBuilderError"],[1283,"impl-Debug-for-PercentileRespBuilderError"],[1286,"impl-From%3CString%3E-for-BuildDetailsBuilderError"],[1287,"impl-From%3CUninitializedFieldError%3E-for-BuildDetailsBuilderError"],[1292,"impl-From%3CString%3E-for-PercentileReqBuilderError"],[1294,"impl-From%3CUninitializedFieldError%3E-for-PercentileReqBuilderError"],[1297,"impl-From%3CUninitializedFieldError%3E-for-PercentileRespBuilderError"],[1299,"impl-From%3CString%3E-for-PercentileRespBuilderError"],[1574,"impl-RustEmbed-for-Asset"],[1575,"impl-Asset"],[1582,"impl-RustEmbed-for-Asset"],[1583,"impl-Asset"],[1705,"impl-Debug-for-SmtpErrorWrapper"],[1706,"impl-Display-for-SmtpErrorWrapper"],[1707,"impl-Display-for-DBErrorWrapper"],[1708,"impl-Debug-for-DBErrorWrapper"],[1709,"impl-Display-for-ServiceError"],[1710,"impl-Debug-for-ServiceError"],[1711,"impl-Display-for-PageError"],[1712,"impl-Debug-for-PageError"],[1716,"impl-From%3CValidationErrors%3E-for-ServiceError"],[1717,"impl-From%3CCaptchaError%3E-for-ServiceError"],[1718,"impl-From%3CRecvError%3E-for-ServiceError"],[1719,"impl-From%3CDBError%3E-for-ServiceError"],[1720,"impl-From%3CParseError%3E-for-ServiceError"],[1721,"impl-From%3CError%3E-for-ServiceError"],[1722,"impl-From%3CCredsError%3E-for-ServiceError"],[1723,"impl-From%3CMailboxError%3E-for-ServiceError"],[1725,"impl-From%3CDBError%3E-for-PageError"],[1727,"impl-From%3CServiceError%3E-for-PageError"],[2580,"impl-Debug-for-DBType"],[2581,"impl-Display-for-DBType"],[2715,"impl-RustEmbed-for-Asset"],[2716,"impl-Asset"],[2717,"impl-Favicons"],[2718,"impl-RustEmbed-for-Favicons"],[2725,"impl-Asset"],[2726,"impl-RustEmbed-for-Asset"],[2727,"impl-RustEmbed-for-Favicons"],[2728,"impl-Favicons"]]}]\ -]')); +var searchIndex = new Map(JSON.parse('[["db_core",{"t":"FFKFFFPEFGKFFFFFFFFPMMMNMMMMMMONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOMMNNNNNNNNNNMMMMOOONNNNNNNNNNNNNNNCOOOOOOMNNNNNNNNNNNNNNNCMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMMMMMMMOOOOOONNNNNNNNNNNNNNNOOOMOOOOCOMCOMMMMOONNNNNNNNNNNNNNNOMMCOOONNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMOOOOMONNNNNNNNNNNNNNNOOXPIPPGPIPPPPPPPNNNNNNNNNNNNRKKKKRMMMSSH","n":["AddNotification","Captcha","CloneSPDatabase","CreateCaptcha","CreatePerformanceAnalytics","EasyCaptcha","Email","GetConnection","Level","Login","MCDatabase","NameHash","Notification","PerformanceAnalytics","Register","Secret","StatsUnixTimestamp","TrafficPattern","UpdateEmail","Username","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","avg_traffic","borrow","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","broke_my_site_traffic","captcha_exists","clone","","","","","","","","","","","","","","","clone_db","clone_into","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","config_fetches","config_id","confirms","create_captcha","create_notification","default","","","","","","","","","","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","","","deserialize","","","","","","","","","","","","","","","dev","difficulty_factor","","","duration","","email","email_exists","eq","","","","","","","","","","","","","","","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","","heading","","id","","into","","","","","","","","","","","","","","","key","","","mark_notification_read","message","","name","new_email","ops","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","","serialize","","","","","","","","","","","","","","","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","tests","time","","to","to_owned","","","","","","","","","","","","","","","traffic_pattern","try_from","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","","","","username_exists","visitor_threshold","vzip","","","","","","","","","","","","","","","worker_type","","async_trait","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","","DBResult","EmailTaken","Err","NotificationNotFound","Ok","SecretTaken","TrafficPatternNotFound","UsernameTaken","borrow","borrow_mut","fmt","","from","into","source","to_string","try_from","try_into","type_id","vzip","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","LEVELS","TRAFFIC_PATTERN","database_works"],"q":[[0,"db_core"],[369,"db_core::dev"],[370,"db_core::errors"],[396,"db_core::ops"],[405,"db_core::tests"],[408,"libmcaptcha::defense"],[409,"core::future::future"],[410,"alloc::boxed"],[411,"core::pin"],[412,"core::option"],[413,"alloc::vec"],[414,"alloc::string"],[415,"core::result"],[416,"serde_core::de"],[417,"core::fmt"],[418,"serde_core::ser"],[419,"core::any"],[420,"core::error"],[421,"async_trait"]],"i":"``````Bb````````````0b000000000AbAnB`4BdAdhBfBhBjBlBn:C`CbCd<;?:9876543=210=><;?:9876543=210Cf==0<;:98765?432838b0<:9876Ab6541111765AnB`4BdAdhBfBhBjBlBn:C`CbCd`98721<><;?:9876543=210`>>><;?:9876543=210<;?:9876543=2104>>>>>>>>>>>><:5475<;?:9876543=210321>545;`=>`5>>>><0<;?:9876543=2106>>`974<;?:9876543=2103<;?:9876543=210<;?:9876543=210<;?:9876543=210>>>>>>><;:3>8<;?:9876543=21097`Eb`00`0`0Fb10111111111111111El````Eh01En```","f":"````````````````````{{{d{b}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{b}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{b}}Af}{{A`{{n{l}}}}}}22{AbAh}{d{{d{c}}}{}}00000000000000{{{d{Aj}}}{{d{Ajc}}}{}}00000000000000{AbAl}{{{d{b}}{Al{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}}An}{{{d{B`}}}B`}{{{d{Bb}}}Bb}{{{d{Bd}}}Bd}{{{d{Ad}}}Ad}{{{d{h}}}h}{{{d{Bf}}}Bf}{{{d{Bh}}}Bh}{{{d{Bj}}}Bj}{{{d{Bl}}}Bl}{{{d{Bn}}}Bn}{{{d{Ab}}}Ab}{{{d{C`}}}C`}{{{d{Cb}}}Cb}{{{d{Cd}}}Cd}{{{d{Cf}}}{{n{b}}}}{{d{d{Ajc}}}Ch{}}00000000000000{{dCj}Ch}00000000000000{BhCl}{CbCn}1{{{d{b}}{d{f}}{d{C`}}}{{A`{{n{l}}}}}}{{{d{b}}{d{Bl}}}{{A`{{n{l}}}}}}{{}Ad}{{}Bf}{{}Bh}{{}Bj}{{}Bl}{{}Bn}{{}Ab}{{}C`}{{}Cb}{{}Cd}{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}{BnD`}{C`d}{CbD`}{c{{Db{An}}}Dd}{c{{Db{B`}}}Dd}{c{{Db{Bb}}}Dd}{c{{Db{Bd}}}Dd}{c{{Db{Ad}}}Dd}{c{{Db{h}}}Dd}{c{{Db{Bf}}}Dd}{c{{Db{Bh}}}Dd}{c{{Db{Bj}}}Dd}{c{{Db{Bl}}}Dd}{c{{Db{Bn}}}Dd}{c{{Db{Ab}}}Dd}{c{{Db{C`}}}Dd}{c{{Db{Cb}}}Dd}{c{{Db{Cd}}}Dd}`{AdAh}{hAh}{BfAh}{C`Cn}{CbCn}{AnAl}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}{d{An}}}Df}{{{d{B`}}{d{B`}}}Df}{{{d{Bb}}{d{Bb}}}Df}{{{d{Bd}}{d{Bd}}}Df}{{{d{Ad}}{d{Ad}}}Df}{{{d{h}}{d{h}}}Df}{{{d{Bf}}{d{Bf}}}Df}{{{d{Bh}}{d{Bh}}}Df}{{{d{Bj}}{d{Bj}}}Df}{{{d{Bl}}{d{Bl}}}Df}{{{d{Bn}}{d{Bn}}}Df}{{{d{Ab}}{d{Ab}}}Df}{{{d{C`}}{d{C`}}}Df}{{{d{Cb}}{d{Cb}}}Df}{{{d{Cd}}{d{Cd}}}Df}`{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{AjDh}}}Dj}{{{d{B`}}{d{AjDh}}}Dj}{{{d{Bb}}{d{AjDh}}}Dj}{{{d{Bd}}{d{AjDh}}}Dj}{{{d{Ad}}{d{AjDh}}}Dj}{{{d{h}}{d{AjDh}}}{{Db{ChDl}}}}{{{d{Bf}}{d{AjDh}}}Dj}{{{d{Bh}}{d{AjDh}}}Dj}{{{d{Bj}}{d{AjDh}}}Dj}{{{d{Bl}}{d{AjDh}}}Dj}{{{d{Bn}}{d{AjDh}}}Dj}{{{d{Ab}}{d{AjDh}}}Dj}{{{d{C`}}{d{AjDh}}}Dj}{{{d{Cb}}{d{AjDh}}}Dj}{{{d{Cd}}{d{AjDh}}}Dj}{cc{}}00000000000000{Bld}{{{d{b}}AfAf}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}0{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}1{{{d{b}}{Al{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}2{{{d{b}}{d{f}}Ah}{{A`{{n{l}}}}}}{{{d{b}}{d{Bb}}}{{A`{{n{l}}}}}}443{And}{BdD`}{BjAl}9{BfAf}1{{}c{}}00000000000000{BnD`}{C`d}{CbD`}{{{d{b}}{d{f}}Cn}{{A`{{n{l}}}}}}6?6{B`d}`{AbAh}{{{d{b}}}{{A`{{n{l}}}}}}`9{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{b}}{d{An}}}{{A`{{n{l}}}}}}={CdD`}{{{d{An}}c}DbDn}{{{d{B`}}c}DbDn}{{{d{Bb}}c}DbDn}{{{d{Bd}}c}DbDn}{{{d{Ad}}c}DbDn}{{{d{h}}c}DbDn}{{{d{Bf}}c}DbDn}{{{d{Bh}}c}DbDn}{{{d{Bj}}c}DbDn}{{{d{Bl}}c}DbDn}{{{d{Bn}}c}DbDn}{{{d{Ab}}c}DbDn}{{{d{C`}}c}DbDn}{{{d{Cb}}c}DbDn}{{{d{Cd}}c}DbDn}{BhCl}{{{d{b}}AhAh}{{A`{{n{l}}}}}}{{{d{b}}Ah}{{A`{{n{l}}}}}}`{AdAh}{BfAh}{Bld}{dc{}}00000000000000{BnAb}{c{{Db{e}}}{}{}}00000000000000{{}{{Db{c}}}{}}00000000000000{dE`}00000000000000{{{d{b}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{C`}}}{{A`{{n{l}}}}}}{{{d{b}}{d{B`}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}AhAh}{{A`{{n{l}}}}}}{{{d{b}}{d{Bd}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{And}{B`d}{BdD`}{BnD`}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}{hAh}{{}c{}}00000000000000{AdD`}{BfD`}```````````````{d{{d{c}}}{}}{{{d{Aj}}}{{d{Ajc}}}{}}{{{d{Eb}}{d{AjDh}}}Dj}0{cc{}}{{}c{}}{{{d{Eb}}}{{Al{{d{Ed}}}}}}{dD`}{c{{Db{e}}}{}{}}{{}{{Db{c}}}{}}{dE`}<``````{{{Eh{}{{Ef{c}}}}}{{A`{{n{l}}}}}b}{{{d{{El{}{{Ej{c}}}}}}}{{A`{{n{l}}}}}{}}{{{d{En}}}{{A`{{n{l}}}}}}{{}F`}{{}Ab}{{{d{c}}{d{An}}{d{C`}}{d{{j{h}}}}{d{Ab}}{d{Bl}}}Chb}","D":"AEn","p":[[10,"MCDatabase",0],[1,"reference",null,null,1],[1,"str"],[5,"Level",0,408],[1,"slice"],[10,"Future",409,null,1],[5,"Box",410,null,1],[5,"Pin",411],[5,"TrafficPattern",0],[5,"CreatePerformanceAnalytics",0],[1,"usize"],[1,"u32"],[0,"mut"],[6,"Option",412,null,1],[5,"Register",0],[5,"UpdateEmail",0],[6,"Login",0],[5,"NameHash",0],[5,"PerformanceAnalytics",0],[5,"StatsUnixTimestamp",0],[5,"Notification",0],[5,"AddNotification",0],[5,"EasyCaptcha",0],[5,"CreateCaptcha",0],[5,"Captcha",0],[5,"Secret",0],[10,"CloneSPDatabase",0],[1,"unit"],[1,"u8"],[5,"Vec",413],[1,"i32"],[5,"String",414],[6,"Result",415,null,1],[10,"Deserializer",416],[1,"bool"],[5,"Formatter",417],[8,"Result",417],[5,"Error",417],[10,"Serializer",418],[5,"TypeId",419],[6,"DBError",370],[10,"Error",420],[17,"Pool"],[10,"Connect",396],[17,"Conn"],[10,"GetConnection",396],[10,"Migrate",396],[1,"array"],[8,"DBResult",370]],"r":[[7,396],[8,408],[36,408],[51,408],[68,408],[84,408],[99,408],[136,408],[148,408],[159,408],[178,408],[193,408],[227,408],[261,408],[283,408],[299,408],[314,408],[329,408],[351,408],[357,408],[369,421]],"b":[[386,"impl-Debug-for-DBError"],[387,"impl-Display-for-DBError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOkAEAAIAAAAIAAdAEAADgBQAB0AcwAJAIQADgCVAAAAmwAOAK4ADgABAQ4AFwEOACcBLABgAQ8AcgEAAIEBAwCHAQUA","P":[[31,"T"],[61,""],[79,"T"],[94,""],[131,"__D"],[147,""],[188,"T"],[203,""],[222,"U"],[237,""],[256,"__S"],[271,""],[278,"T"],[293,""],[294,"U,T"],[309,"U"],[324,""],[352,"V"],[367,""],[384,"T"],[386,""],[388,"T"],[389,"U"],[390,""],[392,"U,T"],[393,"U"],[394,""],[395,"V"],[402,"Connect::Pool"],[403,"GetConnection::Conn"],[404,""],[407,"T"]]}],["db_sqlx_maria",{"t":"FGFPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNCNNNNNNNNNNNNNNNNNNNNNOONNNNNNONONOOCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNPFPPIFPPKPPPPRKFFGPKIEPPFPPPPGKPPPFGKKPFFPPFRPPPFPFPFPFPPFPPPMMMNMMMMMMNXONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOMMMNNNNNNNNNNMMMMOOONNNNNNNNNNNNNNNOOOOOOMNNNNNNNNNNNNNNNCMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMMMMMMMMOOOOOONNNNNNNNNNNNNNNNNNOOOMOOMOOCOMCOMMMMOONNNNNNNNNNNNNNNONNMMCOOONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMOOOOMONNNNNNNNNNNNNNNNNOOOOOOOPIPPGPIPPPPPPPRKKKKRMMMPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMOOMMOOOMMMMMMMOOOCOOOOOOMMMMOMMMMMMMMMMMMMOOOOOOOOOMOOMOOOMOMMMMOOOMMOOOOMMMMMMMOOOOMOOOPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMXOOMMOOOMMMMMMMOOOOOOOOOMMMMOMMMMMMMMMMMMMOOOOOOOOOMOOMOOOMOMMMMOOOMMOOOOMMMMMMMOOOOMOOOSSHHH","n":["Conn","ConnectionOptions","Database","Existing","Fresh","","InnerNotification","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","borrow","","","","","borrow_mut","","","","","captcha_exists","clone","","clone_db","clone_into","","clone_to_uninit","","connect","create_captcha","create_notification","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","","","","","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","heading","id","into","","","","","mark_notification_read","message","migrate","name","ping","pool","pool_options","prelude","received","record_confirm","record_fetch","record_solve","register","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","to_owned","","try_from","","","","","try_into","","","","","type_id","","","","","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","url","username_exists","vzip","","","","","AccountNotFound","AddNotification","AnyDriverError","BeginFailed","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","ColumnDecode","ColumnIndexOutOfBounds","ColumnNotFound","Configuration","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","","DBOps","DBResult","Database","","Decode","EasyCaptcha","Email","EmailTaken","Encode","Err","Error","GetConnection","InvalidArgument","InvalidSavePointStatement","Io","Level","Login","MCDatabase","Migrate","","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","PoolClosed","PoolTimedOut","Protocol","Register","RowNotFound","Secret","SecretTaken","StatsUnixTimestamp","Tls","TrafficPattern","TrafficPatternNotFound","TypeNotFound","UpdateEmail","Username","UsernameTaken","WorkerCrashed","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","as_database_error","async_trait","avg_traffic","borrow","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","broke_my_site_traffic","captcha_exists","clone","","","","","","","","","","","","","","","clone_db","clone_into","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","config_fetches","config_id","confirms","connect","create_captcha","create_notification","default","","","","","","","","","","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","","","deserialize","","","","","","","","","","","","","","","difficulty_factor","","","duration","","email","email_exists","eq","","","","","","","","","","","","","","","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","","heading","","id","","into","","","","","","","","","","","","","","","","","into_database_error","key","","","mark_notification_read","message","","migrate","name","new_email","ops","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","","serialize","","","","","","","","","","","","","","","solves","source","","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","tests","time","","to","to_owned","","","","","","","","","","","","","","","to_string","","traffic_pattern","try_from","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","","","","username_exists","visitor_threshold","vzip","","","","","","","","","","","","","","","","","worker_type","","index","","len","source","type_name","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","","DBResult","EmailTaken","Err","NotificationNotFound","Ok","SecretTaken","TrafficPatternNotFound","UsernameTaken","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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","","","dev","difficulty_factor","","","duration","","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","","heading","","id","","key","","","mark_notification_read","message","","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","","to","traffic_pattern","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","","","","username_exists","visitor_threshold","worker_type","","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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","","","difficulty_factor","","","duration","","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","","heading","","id","","key","","","mark_notification_read","message","","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","","to","traffic_pattern","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","","","","username_exists","visitor_threshold","worker_type","","LEVELS","TRAFFIC_PATTERN","database_works","map_register_err","map_row_not_found_err"],"q":[[0,"db_sqlx_maria"],[120,"db_sqlx_maria::dev"],[563,"db_sqlx_maria::dev::Error"],[568,"db_sqlx_maria::dev"],[569,"db_sqlx_maria::dev::errors"],[570,"db_sqlx_maria::dev"],[572,"db_sqlx_maria::dev::errors"],[573,"db_sqlx_maria::dev"],[574,"db_sqlx_maria::dev::errors"],[575,"db_sqlx_maria::dev"],[583,"db_sqlx_maria::dev::ops"],[587,"db_sqlx_maria::dev"],[592,"db_sqlx_maria::dev::prelude"],[595,"db_sqlx_maria::dev"],[597,"db_sqlx_maria::dev::prelude"],[598,"db_sqlx_maria::dev"],[599,"db_sqlx_maria::dev::prelude"],[603,"db_sqlx_maria::dev"],[604,"db_sqlx_maria::dev::prelude"],[607,"db_sqlx_maria::dev"],[610,"db_sqlx_maria::dev::prelude"],[617,"db_sqlx_maria::dev"],[619,"db_sqlx_maria::dev::prelude"],[620,"db_sqlx_maria::dev"],[621,"db_sqlx_maria::dev::prelude"],[623,"db_sqlx_maria::dev"],[624,"db_sqlx_maria::dev::prelude"],[626,"db_sqlx_maria::dev"],[627,"db_sqlx_maria::dev::prelude"],[628,"db_sqlx_maria::dev"],[657,"db_sqlx_maria::dev::prelude"],[658,"db_sqlx_maria::dev"],[729,"db_sqlx_maria::dev::prelude::dev"],[732,"db_sqlx_maria::dev"],[734,"db_sqlx_maria::dev::prelude::dev"],[735,"db_sqlx_maria::dev"],[736,"db_sqlx_maria::dev::prelude::dev"],[740,"db_sqlx_maria::dev"],[741,"db_sqlx_maria::dev::prelude::dev"],[744,"db_sqlx_maria::dev"],[747,"db_sqlx_maria::dev::prelude::dev"],[754,"db_sqlx_maria::dev"],[756,"db_sqlx_maria::dev::prelude::dev"],[757,"db_sqlx_maria::dev"],[758,"db_sqlx_maria::dev::prelude::dev"],[760,"db_sqlx_maria::dev"],[761,"db_sqlx_maria::dev::prelude::dev"],[763,"db_sqlx_maria::dev"],[764,"db_sqlx_maria::dev::prelude::dev"],[765,"db_sqlx_maria::dev"],[777,"db_sqlx_maria::dev::prelude::dev"],[778,"db_sqlx_maria::dev"],[865,"db_sqlx_maria::dev::tests"],[868,"db_sqlx_maria::errors"],[870,"libmcaptcha::defense"],[871,"core::future::future"],[872,"alloc::boxed"],[873,"core::pin"],[874,"db_core"],[875,"core::option"],[876,"core::fmt"],[877,"alloc::string"],[878,"sqlx_mysql"],[879,"time::offset_date_time"],[880,"core::result"],[881,"core::any"],[882,"sqlx_core::error"],[883,"alloc::vec"],[884,"db_core::ops"],[885,"serde_core::de"],[886,"db_core::errors"],[887,"std::io::error"],[888,"sqlx_core::migrate::error"],[889,"serde_core::ser"],[890,"core::error"],[891,"async_trait"],[892,"db_core::tests"]],"i":"```Bd`0`b00000000Gn2Bj2Al24130330330304333333`130`33302413033333333333300241303030331`03333333024130241302413033333331324130Fd`Dj0``11`0000Fn````2```11`Cd32H```333````3``40`F`444`4`5`4`54`254An0000000005`Ab7D`Df6DhAdhDnE`EbBhEd:BfEfEhDjFd>=Cd=<;:9876Ab65430AnD`Df4DhAdhDnE`EbBhEd;BfEfEhEj=1=<;:98760543949F`An0><;:9827650000876D`Df5DhAdhDnE`EbBhEd2=<;:98761543Dj01D`Df5DhAdhDnE`Eb0BhEd<7697Fd?>Cd>=<;:987Ab765Dj09875;:G`Cd=<;:9876Ab6543Dj84D`Df4DhAdhDnE`EbBhEd;BfEfEh=Fd==Cd=<;:9876Ab654Dj>66:85=6666666724=69:8Fd```00`Fn````1```Cd2H````````30`F```4``4`24;;;;;;;;;;`66;EjE`Ef13>>>>>>EdBf2AdhDn35D`An000Bh111111>1111112DhEb25098:302G`1DfAb6366667Eh?77;96=7777777825=7:;9`````","f":"```````{{{d{b}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}0{{{d{b}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{b}}Af}{{A`{{n{l}}}}}}22{d{{d{c}}}{}}0000{{{d{Ah}}}{{d{Ahc}}}{}}0000{{{d{b}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{b}}}b}{{{d{Al}}}Al}{d{{n{An}}}}{{d{d{Ahc}}}B`{}}0{{dBb}B`}0{Bd{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{b}}{d{Bh}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00>`{BjBl}?{{{d{Al}}{d{Al}}}Bl}`222{{{d{Al}}{d{AhBn}}}C`}{cc{}}0000{{{d{b}}AfAf}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}060?0{{{d{b}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{b}}{d{Cd}}}{{A`{{n{l}}}}}}228{AlCf}{AlCh}{{}c{}}0000{{{d{b}}{d{f}}Ch}{{A`{{n{l}}}}}}3{{{d{b}}}{{A`{{n{l}}}}}}40{bCj}{BjCl}`{AlCn}:::{{{d{b}}{d{D`}}}{{A`{{n{l}}}}}}{{{d{b}}CbCb}{{A`{{n{l}}}}}}{{{d{b}}Cb}{{A`{{n{l}}}}}}{dc{}}0{c{{Db{e}}}{}{}}0000{{}{{Db{c}}}{}}0000{dDd}0000{{{d{b}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{b}}{d{Df}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{b}}{d{Dh}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{BjCf}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}{{}c{}}0000`````````````````````````````````````````````````````````````{{{d{An}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}Af}{{A`{{n{l}}}}}}22{{{d{Dj}}}{{Aj{{d{Dl}}}}}}`{AbCb}{d{{d{c}}}{}}0000000000000000{{{d{Ah}}}{{d{Ahc}}}{}}0000000000000000{AbAj}{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{D`}}}D`}{{{d{Df}}}Df}{{{d{Cd}}}Cd}{{{d{Dh}}}Dh}{{{d{Ad}}}Ad}{{{d{h}}}h}{{{d{Dn}}}Dn}{{{d{E`}}}E`}{{{d{Eb}}}Eb}{{{d{Bh}}}Bh}{{{d{Ed}}}Ed}{{{d{Ab}}}Ab}{{{d{Bf}}}Bf}{{{d{Ef}}}Ef}{{{d{Eh}}}Eh}{{{d{Ej}}}{{n{An}}}}{{d{d{Ahc}}}B`{}}00000000000000{{dBb}B`}00000000000000{E`El}{EfCh}1{{{F`{}{{En{c}}}}}{{A`{{n{l}}}}}An}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Bh}}}{{A`{{n{l}}}}}}{{}Ad}{{}Dn}{{}E`}{{}Eb}{{}Bh}{{}Ed}{{}Ab}{{}Bf}{{}Ef}{{}Eh}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{EdCf}{Bfd}{EfCf}{c{{Db{D`}}}Fb}{c{{Db{Df}}}Fb}{c{{Db{Cd}}}Fb}{c{{Db{Dh}}}Fb}{c{{Db{Ad}}}Fb}{c{{Db{h}}}Fb}{c{{Db{Dn}}}Fb}{c{{Db{E`}}}Fb}{c{{Db{Eb}}}Fb}{c{{Db{Bh}}}Fb}{c{{Db{Ed}}}Fb}{c{{Db{Ab}}}Fb}{c{{Db{Bf}}}Fb}{c{{Db{Ef}}}Fb}{c{{Db{Eh}}}Fb}{AdCb}{hCb}{DnCb}{BfCh}{EfCh}{D`Aj}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{{{d{D`}}{d{D`}}}Bl}{{{d{Df}}{d{Df}}}Bl}{{{d{Cd}}{d{Cd}}}Bl}{{{d{Dh}}{d{Dh}}}Bl}{{{d{Ad}}{d{Ad}}}Bl}{{{d{h}}{d{h}}}Bl}{{{d{Dn}}{d{Dn}}}Bl}{{{d{E`}}{d{E`}}}Bl}{{{d{Eb}}{d{Eb}}}Bl}{{{d{Bh}}{d{Bh}}}Bl}{{{d{Ed}}{d{Ed}}}Bl}{{{d{Ab}}{d{Ab}}}Bl}{{{d{Bf}}{d{Bf}}}Bl}{{{d{Ef}}{d{Ef}}}Bl}{{{d{Eh}}{d{Eh}}}Bl}`{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{Fd}}{d{AhBn}}}{{Db{B`Ff}}}}0{{{d{D`}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Df}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Cd}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Dh}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Ad}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{h}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Dn}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{E`}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Eb}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Bh}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Ed}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Ab}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Bf}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Ef}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Eh}}{d{AhBn}}}{{Db{B`Ff}}}}{{{d{Dj}}{d{AhBn}}}{{Db{B`Ff}}}}0{cc{}}000000000{AlEb}111111{FhDj}2{FjDj}{cDjDl}{Bhd}{{{d{An}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}0{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}1{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{{Fn{}{{Fl{c}}}}}}}{{A`{{n{l}}}}}{}}3{{{d{An}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{An}}{d{Cd}}}{{A`{{n{l}}}}}}554{D`d}{DhCf}{EbAj}:{DnAf}1{{}c{}}0000000000000000{Dj{{Aj{{n{Dl}}}}}}{EdCf}{Bfd}{EfCf}{{{d{An}}{d{f}}Ch}{{A`{{n{l}}}}}}7{Bhd}{{{d{G`}}}{{A`{{n{l}}}}}}9{Dfd}`{AbCb}{{{d{An}}}{{A`{{n{l}}}}}}`<{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{D`}}}{{A`{{n{l}}}}}}{D`d}{EhCf}{{{d{D`}}c}DbGb}{{{d{Df}}c}DbGb}{{{d{Cd}}c}DbGb}{{{d{Dh}}c}DbGb}{{{d{Ad}}c}DbGb}{{{d{h}}c}DbGb}{{{d{Dn}}c}DbGb}{{{d{E`}}c}DbGb}{{{d{Eb}}c}DbGb}{{{d{Bh}}c}DbGb}{{{d{Ed}}c}DbGb}{{{d{Ab}}c}DbGb}{{{d{Bf}}c}DbGb}{{{d{Ef}}c}DbGb}{{{d{Eh}}c}DbGb}{E`El}{{{d{Fd}}}{{Aj{{d{Gd}}}}}}{{{d{Dj}}}{{Aj{{d{Gd}}}}}}{{{d{An}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}Cb}{{A`{{n{l}}}}}}`{AdCb}{DnCb}{Bhd}{dc{}}00000000000000{dCf}0{EdAb}{c{{Db{e}}}{}{}}0000000000000000{{}{{Db{c}}}{}}0000000000000000{dDd}0000000000000000{{{d{An}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Df}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}{d{Dh}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{D`d}{Dfd}{DhCf}{EdCf}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{hCb}{{}c{}}0000000000000000{AdCf}{DnCf}{GfAf}{GhCf}1{Ghn}{GjCf}````````````````````{{{F`{}{{En{c}}}}}{{A`{{n{l}}}}}An}{{{d{{Fn{}{{Fl{c}}}}}}}{{A`{{n{l}}}}}{}}{{{d{G`}}}{{A`{{n{l}}}}}}```````````````````````````````````````{{{d{An}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}>>>{{{d{An}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}Af}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}0{AbCb}{AbAj}{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{Ej}}}{{n{An}}}}{E`El}{EfCh}1>{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Bh}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}009{EdCf}{Bfd}{EfCf}`{AdCb}{hCb}{DnCb}{BfCh}:{D`Aj}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}999{Bhd}{{{d{An}}AfAf}{{A`{{n{l}}}}}}22;2{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{{Fn{}{{Fl{c}}}}}}}{{A`{{n{l}}}}}{}}4{{{d{An}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{An}}{d{Cd}}}{{A`{{n{l}}}}}}66?{D`d}{DhCf}{EbAj}8{DnAf}1{EdCf}{Bfd}{EfCf}{{{d{An}}{d{f}}Ch}{{A`{{n{l}}}}}}5={{{d{G`}}}{{A`{{n{l}}}}}}6{Dfd}{AbCb}{{{d{An}}}{{A`{{n{l}}}}}}9{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{D`}}}{{A`{{n{l}}}}}}={EhCf}{E`El}{{{d{An}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}Cb}{{A`{{n{l}}}}}}{AdCb}{DnCb}{Bhd}{EdAb}{{{d{An}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Df}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}{d{Dh}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{D`d}{Dfd}{DhCf}{EdCf}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{hCb}{AdCf}{DnCf}```````````````````````````````````````{{{d{An}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}666{{{d{An}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}Af}{{A`{{n{l}}}}}}88`{AbCb}{AbAj}{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{Ej}}}{{n{An}}}}{E`El}{EfCh}1{{{F`{}{{En{c}}}}}{{A`{{n{l}}}}}An}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Bh}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{EdCf}{Bfd}{EfCf}{AdCb}{hCb}{DnCb}{BfCh}<{D`Aj}8999{Bhd}{{{d{An}}AfAf}{{A`{{n{l}}}}}}::;:{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{{Fn{}{{Fl{c}}}}}}}{{A`{{n{l}}}}}{}}<{{{d{An}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{An}}{d{Cd}}}{{A`{{n{l}}}}}}>>?{D`d}{DhCf}{EbAj}8{DnAf}1{EdCf}{Bfd}{EfCf}{{{d{An}}{d{f}}Ch}{{A`{{n{l}}}}}}5={{{d{G`}}}{{A`{{n{l}}}}}}6{Dfd}{AbCb}{{{d{An}}}{{A`{{n{l}}}}}}9{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{D`}}}{{A`{{n{l}}}}}}={EhCf}{E`El}{{{d{An}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}Cb}{{A`{{n{l}}}}}}{AdCb}{DnCb}{Bhd}{EdAb}{{{d{An}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Df}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}{d{Dh}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{D`d}{Dfd}{DhCf}{EdCf}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{hCb}{AdCf}{DnCf}{{}Gl}{{}Ab}{{{d{c}}{d{D`}}{d{Bf}}{d{{j{h}}}}{d{Ab}}{d{Bh}}}B`An}{DjFd}{{DjFd}Fd}","D":"DEf","p":[[5,"Database",0],[1,"reference",null,null,1],[1,"str"],[5,"Level",778,870],[1,"slice"],[10,"Future",871,null,1],[5,"Box",872,null,1],[5,"Pin",873],[5,"TrafficPattern",778,874],[5,"CreatePerformanceAnalytics",778,874],[1,"usize"],[0,"mut"],[6,"Option",875,null,1],[5,"InnerNotification",0],[10,"MCDatabase",778,874],[1,"unit"],[1,"u8"],[6,"ConnectionOptions",0],[5,"CreateCaptcha",778,874],[5,"AddNotification",778,874],[5,"Fresh",0],[1,"bool"],[5,"Formatter",876],[8,"Result",876],[1,"u32"],[6,"Login",778,874],[5,"String",877],[1,"i32"],[8,"MySqlPool",878],[8,"MySqlPoolOptions",878],[5,"OffsetDateTime",879],[5,"Register",778,874],[6,"Result",880,null,1],[5,"TypeId",881],[5,"UpdateEmail",778,874],[5,"NameHash",778,874],[6,"Error",778,882],[10,"DatabaseError",882],[5,"PerformanceAnalytics",778,874],[5,"StatsUnixTimestamp",778,874],[5,"Notification",778,874],[5,"EasyCaptcha",778,874],[5,"Captcha",778,874],[5,"Secret",778,874],[10,"CloneSPDatabase",778,874],[5,"Vec",883],[17,"Pool"],[10,"Connect",778,884],[10,"Deserializer",885],[6,"DBError",778,886],[5,"Error",876],[5,"Error",887],[6,"MigrateError",888],[17,"Conn"],[10,"GetConnection",778,884],[10,"Migrate",778,884],[10,"Serializer",889],[10,"Error",890],[15,"ColumnIndexOutOfBounds",563],[15,"ColumnDecode",563],[15,"TypeNotFound",563],[1,"array"],[5,"Conn",0],[8,"DBResult",778]],"r":[[120,886],[121,874],[122,882],[123,882],[124,886],[125,874],[126,886],[127,886],[128,874],[129,882],[130,882],[131,882],[132,882],[133,884],[134,884],[135,874],[136,874],[137,886],[138,886],[139,884],[140,886],[141,0],[142,882],[143,882],[144,874],[145,874],[146,886],[147,882],[149,882],[150,884],[151,882],[152,882],[153,882],[154,870],[155,874],[156,874],[157,884],[158,882],[159,874],[160,874],[161,886],[163,874],[164,884],[165,882],[166,882],[167,882],[168,874],[169,882],[170,874],[171,886],[172,874],[173,882],[174,874],[175,886],[176,882],[177,874],[178,874],[179,886],[180,882],[181,874],[182,874],[183,874],[184,874],[185,874],[186,874],[187,874],[188,874],[189,874],[190,874],[191,882],[192,891],[193,874],[194,886],[195,874],[196,874],[197,874],[198,874],[199,874],[200,870],[201,874],[202,874],[203,874],[204,874],[205,874],[206,874],[207,874],[208,874],[209,874],[210,882],[211,886],[212,874],[213,874],[214,874],[215,874],[216,874],[217,870],[218,874],[219,874],[220,874],[221,874],[222,874],[223,874],[224,874],[225,874],[226,874],[227,882],[228,874],[229,874],[230,874],[231,874],[232,874],[233,874],[234,874],[235,870],[236,874],[237,874],[238,874],[239,874],[240,874],[241,874],[242,874],[243,874],[244,874],[245,874],[246,874],[247,874],[248,874],[249,874],[250,874],[251,870],[252,874],[253,874],[254,874],[255,874],[256,874],[257,874],[258,874],[259,874],[260,874],[261,874],[262,874],[263,874],[264,874],[265,874],[266,870],[267,874],[268,874],[269,874],[270,874],[271,874],[272,874],[273,874],[274,874],[275,874],[276,874],[277,874],[278,874],[279,884],[280,874],[281,874],[282,874],[283,874],[284,874],[285,874],[286,874],[287,874],[288,874],[289,874],[290,874],[291,874],[292,874],[293,874],[294,874],[295,874],[296,874],[297,874],[298,874],[299,874],[300,874],[301,874],[302,874],[303,874],[304,870],[305,874],[306,874],[307,874],[308,874],[309,874],[310,874],[311,874],[312,874],[313,874],[314,874],[315,870],[316,874],[317,874],[318,874],[319,874],[320,874],[321,874],[322,874],[323,874],[324,874],[325,874],[326,870],[327,874],[328,874],[329,874],[330,874],[331,874],[332,874],[333,874],[334,874],[335,874],[336,874],[337,874],[338,874],[339,874],[340,886],[341,886],[342,874],[343,874],[344,874],[345,874],[346,874],[347,870],[348,874],[349,874],[350,874],[351,874],[352,874],[353,874],[354,874],[355,874],[356,874],[357,882],[358,882],[359,886],[360,874],[361,874],[362,874],[363,874],[364,874],[365,870],[366,874],[367,874],[368,874],[369,874],[370,874],[371,874],[372,874],[373,874],[374,874],[375,874],[376,882],[377,882],[378,882],[379,882],[380,874],[381,874],[382,874],[383,874],[384,874],[385,874],[386,874],[387,884],[388,874],[389,874],[390,874],[391,874],[392,874],[393,874],[394,874],[395,874],[396,874],[397,874],[398,874],[399,874],[400,886],[401,874],[402,874],[403,874],[404,874],[405,874],[406,870],[407,874],[408,874],[409,874],[410,874],[411,874],[412,874],[413,874],[414,874],[415,874],[416,882],[417,882],[418,874],[419,874],[420,874],[421,874],[422,874],[423,874],[424,884],[425,874],[426,874],[427,874],[428,874],[429,874],[430,874],[431,874],[432,874],[433,874],[434,874],[435,874],[436,874],[437,874],[438,874],[439,874],[440,874],[441,874],[442,874],[443,870],[444,874],[445,874],[446,874],[447,874],[448,874],[449,874],[450,874],[451,874],[452,874],[453,874],[454,886],[455,882],[456,874],[457,874],[458,874],[459,874],[460,874],[461,874],[462,874],[463,874],[464,874],[465,874],[466,874],[467,870],[468,874],[469,874],[470,874],[471,874],[472,874],[473,874],[474,874],[475,874],[476,874],[477,886],[478,882],[479,874],[480,886],[481,874],[482,874],[483,874],[484,874],[485,874],[486,870],[487,874],[488,874],[489,874],[490,874],[491,874],[492,874],[493,874],[494,874],[495,874],[496,882],[497,886],[498,874],[499,874],[500,874],[501,874],[502,874],[503,870],[504,874],[505,874],[506,874],[507,874],[508,874],[509,874],[510,874],[511,874],[512,874],[513,882],[514,886],[515,874],[516,874],[517,874],[518,874],[519,874],[520,870],[521,874],[522,874],[523,874],[524,874],[525,874],[526,874],[527,874],[528,874],[529,874],[530,882],[531,874],[532,874],[533,874],[534,874],[535,874],[536,874],[537,874],[538,874],[539,874],[540,874],[541,874],[542,874],[543,870],[544,886],[545,874],[546,874],[547,874],[548,874],[549,874],[550,870],[551,874],[552,874],[553,874],[554,874],[555,874],[556,874],[557,874],[558,874],[559,874],[560,882],[561,874],[562,874],[568,886],[569,886],[570,886],[571,886],[572,886],[573,886],[574,886],[575,886],[577,886],[579,886],[580,886],[581,886],[582,884],[583,884],[584,884],[585,884],[586,884],[587,884],[588,884],[589,884],[590,884],[591,886],[592,874],[593,886],[594,874],[595,886],[596,886],[597,874],[598,884],[599,884],[600,874],[601,874],[602,886],[603,886],[604,884],[605,886],[606,874],[607,874],[608,886],[610,884],[611,870],[612,874],[613,874],[614,884],[615,874],[616,874],[617,886],[619,874],[620,884],[621,874],[622,874],[623,886],[624,874],[625,874],[626,886],[627,874],[628,874],[629,886],[630,874],[631,874],[632,874],[633,874],[634,874],[635,874],[636,874],[637,874],[638,874],[639,874],[640,874],[641,874],[642,874],[643,874],[644,874],[645,874],[646,874],[647,884],[648,874],[649,874],[650,874],[651,874],[652,874],[653,874],[654,874],[655,874],[656,874],[657,874],[658,874],[659,870],[660,874],[661,874],[662,874],[663,874],[664,874],[665,874],[666,874],[667,874],[668,874],[669,874],[670,874],[671,874],[672,874],[673,874],[674,874],[675,884],[676,874],[677,874],[678,874],[679,874],[680,874],[681,874],[682,874],[683,874],[684,874],[685,874],[686,874],[687,874],[688,874],[689,874],[690,874],[691,874],[692,874],[693,874],[694,884],[695,874],[696,874],[697,874],[698,874],[699,874],[700,874],[701,874],[702,874],[703,874],[704,874],[705,874],[706,874],[707,874],[708,874],[709,874],[710,874],[711,874],[712,874],[713,874],[714,874],[715,874],[716,874],[717,874],[718,874],[719,874],[720,874],[721,874],[722,874],[723,874],[724,874],[725,870],[726,874],[727,874],[728,886],[729,874],[730,886],[731,874],[732,886],[733,886],[734,874],[735,884],[736,884],[737,874],[738,874],[739,886],[740,886],[741,884],[742,886],[743,874],[744,874],[745,886],[747,884],[748,870],[749,874],[750,874],[751,884],[752,874],[753,874],[754,886],[756,874],[757,884],[758,874],[759,874],[760,886],[761,874],[762,874],[763,886],[764,874],[765,874],[766,886],[767,874],[768,874],[769,874],[770,874],[771,874],[772,874],[773,874],[774,874],[775,874],[776,874],[777,891],[778,874],[779,874],[780,874],[781,874],[782,874],[783,874],[784,874],[785,884],[786,874],[787,874],[788,874],[789,874],[790,874],[791,874],[792,874],[793,874],[794,874],[795,874],[796,870],[797,874],[798,874],[799,874],[800,874],[801,874],[802,874],[803,874],[804,874],[805,874],[806,874],[807,874],[808,874],[809,874],[810,874],[811,874],[812,884],[813,874],[814,874],[815,874],[816,874],[817,874],[818,874],[819,874],[820,874],[821,874],[822,874],[823,874],[824,874],[825,874],[826,874],[827,874],[828,874],[829,874],[830,874],[831,884],[832,874],[833,874],[834,874],[835,874],[836,874],[837,874],[838,874],[839,874],[840,874],[841,874],[842,874],[843,874],[844,874],[845,874],[846,874],[847,874],[848,874],[849,874],[850,874],[851,874],[852,874],[853,874],[854,874],[855,874],[856,874],[857,874],[858,874],[859,874],[860,874],[861,874],[862,870],[863,874],[864,874],[865,892],[866,892],[867,892]],"b":[[340,"impl-Display-for-DBError"],[341,"impl-Debug-for-DBError"],[357,"impl-Display-for-Error"],[358,"impl-Debug-for-Error"],[376,"impl-From%3CError%3E-for-Error"],[378,"impl-From%3CMigrateError%3E-for-Error"],[379,"impl-From%3CE%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADsBKgAAAAAAAwAAAAUAAAAMAAAAEQAJABwABwAqAAEALQAAADIAAABNAAAAUAACAFoAEAByAAAAdAAEAHwAAACOAAAAmQAAAJ8AAADAAAEAwwAhAOcADgD3AB0AGwEJACwBDgA8AQAAQgEOAFUBEgByAQAAeQEAAHsBAQCiAQAAtwEOAMcBAQDPARAA4QEyACACEQA0AgQAlAIAANYCAAAKAwAAHQMAAF8DAAA=","P":[[16,"T"],[26,""],[30,"T"],[32,""],[50,"T"],[55,""],[69,"U"],[74,""],[89,"T"],[91,"U,T"],[96,"U"],[101,""],[115,"V"],[181,""],[194,"T"],[228,""],[246,"T"],[261,""],[279,"Connect::Pool"],[280,""],[299,"__D"],[314,""],[359,"T"],[369,""],[370,"T"],[376,""],[377,"T"],[378,""],[379,"E"],[380,""],[387,"GetConnection::Conn"],[388,""],[400,"U"],[417,""],[438,"__S"],[453,""],[462,"T"],[477,""],[480,"U,T"],[497,"U"],[514,""],[544,"V"],[561,""],[588,"Connect::Pool"],[589,"GetConnection::Conn"],[590,""],[647,"Connect::Pool"],[648,""],[675,"GetConnection::Conn"],[676,""],[785,"Connect::Pool"],[786,""],[812,"GetConnection::Conn"],[813,""],[867,"T"],[868,""]]}],["db_sqlx_postgres",{"t":"FGFPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNCNNNNNNNNNNNNNNNNNNNNNOONNNNNNONONOOCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNPFPPIFPPKPPPPRKFFGPKIEPPFPPPPGKPPPFGKKPFFPPFRPPPFPFPFPFPPFPPPMMMNMMMMMMNXONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOMMMNNNNNNNNNNMMMMOOONNNNNNNNNNNNNNNOOOOOOMNNNNNNNNNNNNNNNCMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMMMMMMMMOOOOOONNNNNNNNNNNNNNNNNNOOOMOOMOOCOMCOMMMMOONNNNNNNNNNNNNNNONNMMCOOONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMOOOOMONNNNNNNNNNNNNNNNNOOOOOOOPIPPGPIPPPPPPPRKKKKRMMMPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMOOMMOOOMMMMMMMOOOCOOOOOOMMMMOMMMMMMMMMMMMMOOOOOOOOOMOOMOOOMOMMMMOOOMMOOOOMMMMMMMOOOOMOOOPFIFPPKRKFFGPKIFPPPKFGKKFFPPFRFFPFFPFPPMMMNMMMMMMXOOMMOOOMMMMMMMOOOOOOOOOMMMMOMMMMMMMMMMMMMOOOOOOOOOMOOMOOOMOMMMMOOOMMOOOOMMMMMMMOOOOMOOOSSHHH","n":["Conn","ConnectionOptions","Database","Existing","Fresh","","InnerNotification","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","borrow","","","","","borrow_mut","","","","","captcha_exists","clone","","clone_db","clone_into","","clone_to_uninit","","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","","","","","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","heading","id","into","","","","","mark_notification_read","message","migrate","name","ping","pool","pool_options","prelude","received","record_confirm","record_fetch","record_solve","register","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","to_owned","","try_from","","","","","try_into","","","","","type_id","","","","","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","url","username_exists","vzip","","","","","AccountNotFound","AddNotification","AnyDriverError","BeginFailed","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","ColumnDecode","ColumnIndexOutOfBounds","ColumnNotFound","Configuration","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","","DBOps","DBResult","Database","","Decode","EasyCaptcha","Email","EmailTaken","Encode","Err","Error","GetConnection","InvalidArgument","InvalidSavePointStatement","Io","Level","Login","MCDatabase","Migrate","","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","PoolClosed","PoolTimedOut","Protocol","Register","RowNotFound","Secret","SecretTaken","StatsUnixTimestamp","Tls","TrafficPattern","TrafficPatternNotFound","TypeNotFound","UpdateEmail","Username","UsernameTaken","WorkerCrashed","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","as_database_error","async_trait","avg_traffic","borrow","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","broke_my_site_traffic","captcha_exists","clone","","","","","","","","","","","","","","","clone_db","clone_into","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","config_fetches","config_id","confirms","connect","create_captcha","create_notification","default","","","","","","","","","","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","","","deserialize","","","","","","","","","","","","","","","difficulty_factor","","","duration","","email","email_exists","eq","","","","","","","","","","","","","","","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","","heading","","id","","into","","","","","","","","","","","","","","","","","into_database_error","key","","","mark_notification_read","message","","migrate","name","new_email","ops","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","","serialize","","","","","","","","","","","","","","","solves","source","","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","tests","time","","to","to_owned","","","","","","","","","","","","","","","to_string","","traffic_pattern","try_from","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","","","","username_exists","visitor_threshold","vzip","","","","","","","","","","","","","","","","","worker_type","","index","","len","source","type_name","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","","DBResult","EmailTaken","Err","NotificationNotFound","Ok","SecretTaken","TrafficPatternNotFound","UsernameTaken","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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","","","dev","difficulty_factor","","","duration","","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","","heading","","id","","key","","","mark_notification_read","message","","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","","to","traffic_pattern","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","","","","username_exists","visitor_threshold","worker_type","","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","CreatePerformanceAnalytics","DBError","","DBOps","DBResult","EasyCaptcha","Email","EmailTaken","Err","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Ok","PerformanceAnalytics","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","analysis_save","analytics_captcha_is_published","analytics_create_psuedo_id_if_not_exists","analytics_delete_all_records_for_campaign","analytics_fetch","analytics_get_all_psuedo_ids","analytics_get_capmaign_id_from_psuedo_id","analytics_get_psuedo_id_from_capmaign_id","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","","","difficulty_factor","","","duration","","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_easy_captchas","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_max_nonce_for_level","get_password","get_secret","get_secret_from_captcha","get_traffic_pattern","hash","","heading","","id","","key","","","mark_notification_read","message","","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","","solves","stats_get_entry_at_location_for_time_limit_asc","stats_get_num_logs_under_time","time","","to","traffic_pattern","update_captcha_key","update_captcha_metadata","update_email","update_max_nonce_for_level","update_password","update_secret","update_username","username","","","","username_exists","visitor_threshold","worker_type","","LEVELS","TRAFFIC_PATTERN","database_works","map_register_err","map_row_not_found_err"],"q":[[0,"db_sqlx_postgres"],[121,"db_sqlx_postgres::dev"],[564,"db_sqlx_postgres::dev::Error"],[569,"db_sqlx_postgres::dev"],[570,"db_sqlx_postgres::dev::errors"],[571,"db_sqlx_postgres::dev"],[573,"db_sqlx_postgres::dev::errors"],[574,"db_sqlx_postgres::dev"],[575,"db_sqlx_postgres::dev::errors"],[576,"db_sqlx_postgres::dev"],[584,"db_sqlx_postgres::dev::ops"],[588,"db_sqlx_postgres::dev"],[593,"db_sqlx_postgres::dev::prelude"],[596,"db_sqlx_postgres::dev"],[598,"db_sqlx_postgres::dev::prelude"],[599,"db_sqlx_postgres::dev"],[600,"db_sqlx_postgres::dev::prelude"],[604,"db_sqlx_postgres::dev"],[605,"db_sqlx_postgres::dev::prelude"],[608,"db_sqlx_postgres::dev"],[611,"db_sqlx_postgres::dev::prelude"],[618,"db_sqlx_postgres::dev"],[620,"db_sqlx_postgres::dev::prelude"],[621,"db_sqlx_postgres::dev"],[622,"db_sqlx_postgres::dev::prelude"],[624,"db_sqlx_postgres::dev"],[625,"db_sqlx_postgres::dev::prelude"],[627,"db_sqlx_postgres::dev"],[628,"db_sqlx_postgres::dev::prelude"],[629,"db_sqlx_postgres::dev"],[658,"db_sqlx_postgres::dev::prelude"],[659,"db_sqlx_postgres::dev"],[730,"db_sqlx_postgres::dev::prelude::dev"],[733,"db_sqlx_postgres::dev"],[735,"db_sqlx_postgres::dev::prelude::dev"],[736,"db_sqlx_postgres::dev"],[737,"db_sqlx_postgres::dev::prelude::dev"],[741,"db_sqlx_postgres::dev"],[742,"db_sqlx_postgres::dev::prelude::dev"],[745,"db_sqlx_postgres::dev"],[748,"db_sqlx_postgres::dev::prelude::dev"],[755,"db_sqlx_postgres::dev"],[757,"db_sqlx_postgres::dev::prelude::dev"],[758,"db_sqlx_postgres::dev"],[759,"db_sqlx_postgres::dev::prelude::dev"],[761,"db_sqlx_postgres::dev"],[762,"db_sqlx_postgres::dev::prelude::dev"],[764,"db_sqlx_postgres::dev"],[765,"db_sqlx_postgres::dev::prelude::dev"],[766,"db_sqlx_postgres::dev"],[778,"db_sqlx_postgres::dev::prelude::dev"],[779,"db_sqlx_postgres::dev"],[866,"db_sqlx_postgres::dev::tests"],[869,"db_sqlx_postgres::errors"],[871,"libmcaptcha::defense"],[872,"core::future::future"],[873,"alloc::boxed"],[874,"core::pin"],[875,"db_core"],[876,"core::option"],[877,"core::fmt"],[878,"sqlx_postgres"],[879,"core::result"],[880,"core::any"],[881,"alloc::string"],[882,"sqlx_core::error"],[883,"alloc::vec"],[884,"db_core::ops"],[885,"serde_core::de"],[886,"db_core::errors"],[887,"std::io::error"],[888,"sqlx_core::migrate::error"],[889,"serde_core::ser"],[890,"core::error"],[891,"async_trait"],[892,"db_core::tests"]],"i":"```Bd`0`b00000000Gl2Bj2Al241303303303043303333`130`33302413033333333333300241303030331`03333333024130241302413033333331324130Fb`Dh0``11`0000Fl````2```11`Cd32Gn``333````3``40`En444`4`5`4`54`254An0000000005`Ab7ClDb6DdAdhDlDnE`BhEb:BfEdEfDhFb>=Cd=<;:9876Ab65430AnClDb4DdAdhDlDnE`BhEb;BfEdEfEh=1=<;:98760543949EnAn0><;:9827650000876ClDb5DdAdhDlDnE`BhEb2=<;:98761543Dh01ClDb5DdAdhDlDnE`0BhEb<7697Fb?>Cd>=<;:987Ab765Dh09875;:FnCd=<;:9876Ab6543Dh84ClDb4DdAdhDlDnE`BhEb;BfEdEf=Fb==Cd=<;:9876Ab654Dh>66:85=6666666724=69:8Fb```00`Fl````1```Cd2Gn```````30`En``4``4`24;;;;;;;;;;`66;EhDnEd13>>>>>>EbBf2AdhDl35ClAn000Bh111111>1111112DdE`25098:302Fn1DbAb6366667Ef?77;96=7777777825=7:;9`````","f":"```````{{{d{b}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}0{{{d{b}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{b}}Af}{{A`{{n{l}}}}}}22{d{{d{c}}}{}}0000{{{d{Ah}}}{{d{Ahc}}}{}}0000{{{d{b}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{b}}}b}{{{d{Al}}}Al}{d{{n{An}}}}{{d{d{Ahc}}}B`{}}0{{dBb}B`}0{Bd{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{b}}{d{Bh}}}{{A`{{n{l}}}}}}{{}Al}{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00?`{BjBl}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}{{{d{Al}}{d{Al}}}Bl}`333{{{d{Al}}{d{AhBn}}}C`}{cc{}}0000{{{d{b}}AfAf}{{A`{{n{l}}}}}}4464{{{d{b}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}5{{{d{b}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{b}}{d{Cd}}}{{A`{{n{l}}}}}}779{AlAj}0{{}c{}}0000{{{d{b}}{d{f}}Cf}{{A`{{n{l}}}}}}2{{{d{b}}}{{A`{{n{l}}}}}}30{bCh}{BjCj}`5==={{{d{b}}{d{Cl}}}{{A`{{n{l}}}}}}{{{d{b}}CbCb}{{A`{{n{l}}}}}}{{{d{b}}Cb}{{A`{{n{l}}}}}}{dc{}}0{c{{Cn{e}}}{}{}}0000{{}{{Cn{c}}}{}}0000{dD`}0000{{{d{b}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{b}}{d{Db}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{b}}{d{Dd}}}{{A`{{n{l}}}}}}{{{d{b}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{BjDf}{{{d{b}}{d{f}}}{{A`{{n{l}}}}}}{{}c{}}0000`````````````````````````````````````````````````````````````{{{d{An}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}Af}{{A`{{n{l}}}}}}22{{{d{Dh}}}{{Aj{{d{Dj}}}}}}`{AbCb}{d{{d{c}}}{}}0000000000000000{{{d{Ah}}}{{d{Ahc}}}{}}0000000000000000{AbAj}{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{Cl}}}Cl}{{{d{Db}}}Db}{{{d{Cd}}}Cd}{{{d{Dd}}}Dd}{{{d{Ad}}}Ad}{{{d{h}}}h}{{{d{Dl}}}Dl}{{{d{Dn}}}Dn}{{{d{E`}}}E`}{{{d{Bh}}}Bh}{{{d{Eb}}}Eb}{{{d{Ab}}}Ab}{{{d{Bf}}}Bf}{{{d{Ed}}}Ed}{{{d{Ef}}}Ef}{{{d{Eh}}}{{n{An}}}}{{d{d{Ahc}}}B`{}}00000000000000{{dBb}B`}00000000000000{DnEj}{EdCf}1{{{En{}{{El{c}}}}}{{A`{{n{l}}}}}An}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Bh}}}{{A`{{n{l}}}}}}{{}Ad}{{}Dl}{{}Dn}{{}E`}{{}Bh}{{}Eb}{{}Ab}{{}Bf}{{}Ed}{{}Ef}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{EbDf}{Bfd}{EdDf}{c{{Cn{Cl}}}F`}{c{{Cn{Db}}}F`}{c{{Cn{Cd}}}F`}{c{{Cn{Dd}}}F`}{c{{Cn{Ad}}}F`}{c{{Cn{h}}}F`}{c{{Cn{Dl}}}F`}{c{{Cn{Dn}}}F`}{c{{Cn{E`}}}F`}{c{{Cn{Bh}}}F`}{c{{Cn{Eb}}}F`}{c{{Cn{Ab}}}F`}{c{{Cn{Bf}}}F`}{c{{Cn{Ed}}}F`}{c{{Cn{Ef}}}F`}{AdCb}{hCb}{DlCb}{BfCf}{EdCf}{ClAj}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{{{d{Cl}}{d{Cl}}}Bl}{{{d{Db}}{d{Db}}}Bl}{{{d{Cd}}{d{Cd}}}Bl}{{{d{Dd}}{d{Dd}}}Bl}{{{d{Ad}}{d{Ad}}}Bl}{{{d{h}}{d{h}}}Bl}{{{d{Dl}}{d{Dl}}}Bl}{{{d{Dn}}{d{Dn}}}Bl}{{{d{E`}}{d{E`}}}Bl}{{{d{Bh}}{d{Bh}}}Bl}{{{d{Eb}}{d{Eb}}}Bl}{{{d{Ab}}{d{Ab}}}Bl}{{{d{Bf}}{d{Bf}}}Bl}{{{d{Ed}}{d{Ed}}}Bl}{{{d{Ef}}{d{Ef}}}Bl}`{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{Fb}}{d{AhBn}}}{{Cn{B`Fd}}}}0{{{d{Cl}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Db}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Cd}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Dd}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Ad}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{h}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Dl}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Dn}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{E`}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Bh}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Eb}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Ab}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Bf}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Ed}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Ef}}{d{AhBn}}}{{Cn{B`Fd}}}}{{{d{Dh}}{d{AhBn}}}{{Cn{B`Fd}}}}0{cc{}}00000000{AlE`}1111111{FfDh}{cDhDj}{FhDh}4{Bhd}{{{d{An}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}0{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}1{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{{Fl{}{{Fj{c}}}}}}}{{A`{{n{l}}}}}{}}3{{{d{An}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{An}}{d{Cd}}}{{A`{{n{l}}}}}}554{Cld}{DdDf}{E`Aj}:{DlAf}1{{}c{}}0000000000000000{Dh{{Aj{{n{Dj}}}}}}{EbDf}{Bfd}{EdDf}{{{d{An}}{d{f}}Cf}{{A`{{n{l}}}}}}7{Bhd}{{{d{Fn}}}{{A`{{n{l}}}}}}9{Dbd}`{AbCb}{{{d{An}}}{{A`{{n{l}}}}}}`<{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{Cl}}}{{A`{{n{l}}}}}}{Cld}{EfDf}{{{d{Cl}}c}CnG`}{{{d{Db}}c}CnG`}{{{d{Cd}}c}CnG`}{{{d{Dd}}c}CnG`}{{{d{Ad}}c}CnG`}{{{d{h}}c}CnG`}{{{d{Dl}}c}CnG`}{{{d{Dn}}c}CnG`}{{{d{E`}}c}CnG`}{{{d{Bh}}c}CnG`}{{{d{Eb}}c}CnG`}{{{d{Ab}}c}CnG`}{{{d{Bf}}c}CnG`}{{{d{Ed}}c}CnG`}{{{d{Ef}}c}CnG`}{DnEj}{{{d{Fb}}}{{Aj{{d{Gb}}}}}}{{{d{Dh}}}{{Aj{{d{Gb}}}}}}{{{d{An}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}Cb}{{A`{{n{l}}}}}}`{AdCb}{DlCb}{Bhd}{dc{}}00000000000000{dDf}0{EbAb}{c{{Cn{e}}}{}{}}0000000000000000{{}{{Cn{c}}}{}}0000000000000000{dD`}0000000000000000{{{d{An}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Db}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}{d{Dd}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{Cld}{Dbd}{DdDf}{EbDf}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{hCb}{{}c{}}0000000000000000{AdDf}{DlDf}{GdAf}{GfDf}1{Gfn}{GhDf}````````````````````{{{En{}{{El{c}}}}}{{A`{{n{l}}}}}An}{{{d{{Fl{}{{Fj{c}}}}}}}{{A`{{n{l}}}}}{}}{{{d{Fn}}}{{A`{{n{l}}}}}}```````````````````````````````````````{{{d{An}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}>>>{{{d{An}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}Af}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}0{AbCb}{AbAj}{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{Eh}}}{{n{An}}}}{DnEj}{EdCf}1>{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Bh}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}009{EbDf}{Bfd}{EdDf}`{AdCb}{hCb}{DlCb}{BfCf}:{ClAj}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}999{Bhd}{{{d{An}}AfAf}{{A`{{n{l}}}}}}22;2{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{{Fl{}{{Fj{c}}}}}}}{{A`{{n{l}}}}}{}}4{{{d{An}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{An}}{d{Cd}}}{{A`{{n{l}}}}}}66?{Cld}{DdDf}{E`Aj}8{DlAf}1{EbDf}{Bfd}{EdDf}{{{d{An}}{d{f}}Cf}{{A`{{n{l}}}}}}5={{{d{Fn}}}{{A`{{n{l}}}}}}6{Dbd}{AbCb}{{{d{An}}}{{A`{{n{l}}}}}}9{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{Cl}}}{{A`{{n{l}}}}}}={EfDf}{DnEj}{{{d{An}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}Cb}{{A`{{n{l}}}}}}{AdCb}{DlCb}{Bhd}{EbAb}{{{d{An}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Db}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}{d{Dd}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{Cld}{Dbd}{DdDf}{EbDf}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{hCb}{AdDf}{DlDf}```````````````````````````````````````{{{d{An}}{d{f}}{d{f}}{d{{j{h}}}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}{d{Ab}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Ad}}}{{A`{{n{l}}}}}}666{{{d{An}}{d{f}}AfAf}{{A`{{n{l}}}}}}{{{d{An}}Af}{{A`{{n{l}}}}}}88`{AbCb}{AbAj}{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{Eh}}}{{n{An}}}}{DnEj}{EdCf}1{{{En{}{{El{c}}}}}{{A`{{n{l}}}}}An}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Bh}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{EbDf}{Bfd}{EdDf}{AdCb}{hCb}{DlCb}{BfCf}<{ClAj}8999{Bhd}{{{d{An}}AfAf}{{A`{{n{l}}}}}}::;:{{{d{An}}{Aj{{d{f}}}}{d{f}}}{{A`{{n{l}}}}}}{{{d{{Fl{}{{Fj{c}}}}}}}{{A`{{n{l}}}}}{}}<{{{d{An}}{d{f}}Cb}{{A`{{n{l}}}}}}{{{d{An}}{d{Cd}}}{{A`{{n{l}}}}}}>>?{Cld}{DdDf}{E`Aj}8{DlAf}1{EbDf}{Bfd}{EdDf}{{{d{An}}{d{f}}Cf}{{A`{{n{l}}}}}}5={{{d{Fn}}}{{A`{{n{l}}}}}}6{Dbd}{AbCb}{{{d{An}}}{{A`{{n{l}}}}}}9{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}00{{{d{An}}{d{Cl}}}{{A`{{n{l}}}}}}={EfDf}{DnEj}{{{d{An}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}Cb}{{A`{{n{l}}}}}}{AdCb}{DlCb}{Bhd}{EbAb}{{{d{An}}{d{f}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{Bf}}}{{A`{{n{l}}}}}}{{{d{An}}{d{Db}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}CbCb}{{A`{{n{l}}}}}}{{{d{An}}{d{Dd}}}{{A`{{n{l}}}}}}{{{d{An}}{d{f}}{d{f}}}{{A`{{n{l}}}}}}0{Cld}{Dbd}{DdDf}{EbDf}{{{d{An}}{d{f}}}{{A`{{n{l}}}}}}{hCb}{AdDf}{DlDf}{{}Gj}{{}Ab}{{{d{c}}{d{Cl}}{d{Bf}}{d{{j{h}}}}{d{Ab}}{d{Bh}}}B`An}{DhFb}{{DhFb}Fb}","D":"DEf","p":[[5,"Database",0],[1,"reference",null,null,1],[1,"str"],[5,"Level",779,871],[1,"slice"],[10,"Future",872,null,1],[5,"Box",873,null,1],[5,"Pin",874],[5,"TrafficPattern",779,875],[5,"CreatePerformanceAnalytics",779,875],[1,"usize"],[0,"mut"],[6,"Option",876,null,1],[5,"InnerNotification",0],[10,"MCDatabase",779,875],[1,"unit"],[1,"u8"],[6,"ConnectionOptions",0],[5,"CreateCaptcha",779,875],[5,"AddNotification",779,875],[5,"Fresh",0],[1,"bool"],[5,"Formatter",877],[8,"Result",877],[1,"u32"],[6,"Login",779,875],[1,"i32"],[8,"PgPool",878],[8,"PgPoolOptions",878],[5,"Register",779,875],[6,"Result",879,null,1],[5,"TypeId",880],[5,"UpdateEmail",779,875],[5,"NameHash",779,875],[5,"String",881],[6,"Error",779,882],[10,"DatabaseError",882],[5,"PerformanceAnalytics",779,875],[5,"StatsUnixTimestamp",779,875],[5,"Notification",779,875],[5,"EasyCaptcha",779,875],[5,"Captcha",779,875],[5,"Secret",779,875],[10,"CloneSPDatabase",779,875],[5,"Vec",883],[17,"Pool"],[10,"Connect",779,884],[10,"Deserializer",885],[6,"DBError",779,886],[5,"Error",877],[5,"Error",887],[6,"MigrateError",888],[17,"Conn"],[10,"GetConnection",779,884],[10,"Migrate",779,884],[10,"Serializer",889],[10,"Error",890],[15,"ColumnIndexOutOfBounds",564],[15,"ColumnDecode",564],[15,"TypeNotFound",564],[1,"array"],[5,"Conn",0],[8,"DBResult",779]],"r":[[121,886],[122,875],[123,882],[124,882],[125,886],[126,875],[127,886],[128,886],[129,875],[130,882],[131,882],[132,882],[133,882],[134,884],[135,884],[136,875],[137,875],[138,886],[139,886],[140,884],[141,886],[142,0],[143,882],[144,882],[145,875],[146,875],[147,886],[148,882],[150,882],[151,884],[152,882],[153,882],[154,882],[155,871],[156,875],[157,875],[158,884],[159,882],[160,875],[161,875],[162,886],[164,875],[165,884],[166,882],[167,882],[168,882],[169,875],[170,882],[171,875],[172,886],[173,875],[174,882],[175,875],[176,886],[177,882],[178,875],[179,875],[180,886],[181,882],[182,875],[183,875],[184,875],[185,875],[186,875],[187,875],[188,875],[189,875],[190,875],[191,875],[192,882],[193,891],[194,875],[195,886],[196,875],[197,875],[198,875],[199,875],[200,875],[201,871],[202,875],[203,875],[204,875],[205,875],[206,875],[207,875],[208,875],[209,875],[210,875],[211,882],[212,886],[213,875],[214,875],[215,875],[216,875],[217,875],[218,871],[219,875],[220,875],[221,875],[222,875],[223,875],[224,875],[225,875],[226,875],[227,875],[228,882],[229,875],[230,875],[231,875],[232,875],[233,875],[234,875],[235,875],[236,871],[237,875],[238,875],[239,875],[240,875],[241,875],[242,875],[243,875],[244,875],[245,875],[246,875],[247,875],[248,875],[249,875],[250,875],[251,875],[252,871],[253,875],[254,875],[255,875],[256,875],[257,875],[258,875],[259,875],[260,875],[261,875],[262,875],[263,875],[264,875],[265,875],[266,875],[267,871],[268,875],[269,875],[270,875],[271,875],[272,875],[273,875],[274,875],[275,875],[276,875],[277,875],[278,875],[279,875],[280,884],[281,875],[282,875],[283,875],[284,875],[285,875],[286,875],[287,875],[288,875],[289,875],[290,875],[291,875],[292,875],[293,875],[294,875],[295,875],[296,875],[297,875],[298,875],[299,875],[300,875],[301,875],[302,875],[303,875],[304,875],[305,871],[306,875],[307,875],[308,875],[309,875],[310,875],[311,875],[312,875],[313,875],[314,875],[315,875],[316,871],[317,875],[318,875],[319,875],[320,875],[321,875],[322,875],[323,875],[324,875],[325,875],[326,875],[327,871],[328,875],[329,875],[330,875],[331,875],[332,875],[333,875],[334,875],[335,875],[336,875],[337,875],[338,875],[339,875],[340,875],[341,886],[342,886],[343,875],[344,875],[345,875],[346,875],[347,875],[348,871],[349,875],[350,875],[351,875],[352,875],[353,875],[354,875],[355,875],[356,875],[357,875],[358,882],[359,882],[360,886],[361,875],[362,875],[363,875],[364,875],[365,875],[366,871],[367,875],[368,875],[369,875],[370,875],[371,875],[372,875],[373,875],[374,875],[375,875],[376,875],[377,882],[378,882],[379,882],[380,882],[381,875],[382,875],[383,875],[384,875],[385,875],[386,875],[387,875],[388,884],[389,875],[390,875],[391,875],[392,875],[393,875],[394,875],[395,875],[396,875],[397,875],[398,875],[399,875],[400,875],[401,886],[402,875],[403,875],[404,875],[405,875],[406,875],[407,871],[408,875],[409,875],[410,875],[411,875],[412,875],[413,875],[414,875],[415,875],[416,875],[417,882],[418,882],[419,875],[420,875],[421,875],[422,875],[423,875],[424,875],[425,884],[426,875],[427,875],[428,875],[429,875],[430,875],[431,875],[432,875],[433,875],[434,875],[435,875],[436,875],[437,875],[438,875],[439,875],[440,875],[441,875],[442,875],[443,875],[444,871],[445,875],[446,875],[447,875],[448,875],[449,875],[450,875],[451,875],[452,875],[453,875],[454,875],[455,886],[456,882],[457,875],[458,875],[459,875],[460,875],[461,875],[462,875],[463,875],[464,875],[465,875],[466,875],[467,875],[468,871],[469,875],[470,875],[471,875],[472,875],[473,875],[474,875],[475,875],[476,875],[477,875],[478,886],[479,882],[480,875],[481,886],[482,875],[483,875],[484,875],[485,875],[486,875],[487,871],[488,875],[489,875],[490,875],[491,875],[492,875],[493,875],[494,875],[495,875],[496,875],[497,882],[498,886],[499,875],[500,875],[501,875],[502,875],[503,875],[504,871],[505,875],[506,875],[507,875],[508,875],[509,875],[510,875],[511,875],[512,875],[513,875],[514,882],[515,886],[516,875],[517,875],[518,875],[519,875],[520,875],[521,871],[522,875],[523,875],[524,875],[525,875],[526,875],[527,875],[528,875],[529,875],[530,875],[531,882],[532,875],[533,875],[534,875],[535,875],[536,875],[537,875],[538,875],[539,875],[540,875],[541,875],[542,875],[543,875],[544,871],[545,886],[546,875],[547,875],[548,875],[549,875],[550,875],[551,871],[552,875],[553,875],[554,875],[555,875],[556,875],[557,875],[558,875],[559,875],[560,875],[561,882],[562,875],[563,875],[569,886],[570,886],[571,886],[572,886],[573,886],[574,886],[575,886],[576,886],[578,886],[580,886],[581,886],[582,886],[583,884],[584,884],[585,884],[586,884],[587,884],[588,884],[589,884],[590,884],[591,884],[592,886],[593,875],[594,886],[595,875],[596,886],[597,886],[598,875],[599,884],[600,884],[601,875],[602,875],[603,886],[604,886],[605,884],[606,886],[607,875],[608,875],[609,886],[611,884],[612,871],[613,875],[614,875],[615,884],[616,875],[617,875],[618,886],[620,875],[621,884],[622,875],[623,875],[624,886],[625,875],[626,875],[627,886],[628,875],[629,875],[630,886],[631,875],[632,875],[633,875],[634,875],[635,875],[636,875],[637,875],[638,875],[639,875],[640,875],[641,875],[642,875],[643,875],[644,875],[645,875],[646,875],[647,875],[648,884],[649,875],[650,875],[651,875],[652,875],[653,875],[654,875],[655,875],[656,875],[657,875],[658,875],[659,875],[660,871],[661,875],[662,875],[663,875],[664,875],[665,875],[666,875],[667,875],[668,875],[669,875],[670,875],[671,875],[672,875],[673,875],[674,875],[675,875],[676,884],[677,875],[678,875],[679,875],[680,875],[681,875],[682,875],[683,875],[684,875],[685,875],[686,875],[687,875],[688,875],[689,875],[690,875],[691,875],[692,875],[693,875],[694,875],[695,884],[696,875],[697,875],[698,875],[699,875],[700,875],[701,875],[702,875],[703,875],[704,875],[705,875],[706,875],[707,875],[708,875],[709,875],[710,875],[711,875],[712,875],[713,875],[714,875],[715,875],[716,875],[717,875],[718,875],[719,875],[720,875],[721,875],[722,875],[723,875],[724,875],[725,875],[726,871],[727,875],[728,875],[729,886],[730,875],[731,886],[732,875],[733,886],[734,886],[735,875],[736,884],[737,884],[738,875],[739,875],[740,886],[741,886],[742,884],[743,886],[744,875],[745,875],[746,886],[748,884],[749,871],[750,875],[751,875],[752,884],[753,875],[754,875],[755,886],[757,875],[758,884],[759,875],[760,875],[761,886],[762,875],[763,875],[764,886],[765,875],[766,875],[767,886],[768,875],[769,875],[770,875],[771,875],[772,875],[773,875],[774,875],[775,875],[776,875],[777,875],[778,891],[779,875],[780,875],[781,875],[782,875],[783,875],[784,875],[785,875],[786,884],[787,875],[788,875],[789,875],[790,875],[791,875],[792,875],[793,875],[794,875],[795,875],[796,875],[797,871],[798,875],[799,875],[800,875],[801,875],[802,875],[803,875],[804,875],[805,875],[806,875],[807,875],[808,875],[809,875],[810,875],[811,875],[812,875],[813,884],[814,875],[815,875],[816,875],[817,875],[818,875],[819,875],[820,875],[821,875],[822,875],[823,875],[824,875],[825,875],[826,875],[827,875],[828,875],[829,875],[830,875],[831,875],[832,884],[833,875],[834,875],[835,875],[836,875],[837,875],[838,875],[839,875],[840,875],[841,875],[842,875],[843,875],[844,875],[845,875],[846,875],[847,875],[848,875],[849,875],[850,875],[851,875],[852,875],[853,875],[854,875],[855,875],[856,875],[857,875],[858,875],[859,875],[860,875],[861,875],[862,875],[863,871],[864,875],[865,875],[866,892],[867,892],[868,892]],"b":[[341,"impl-Display-for-DBError"],[342,"impl-Debug-for-DBError"],[358,"impl-Display-for-Error"],[359,"impl-Debug-for-Error"],[377,"impl-From%3CError%3E-for-Error"],[378,"impl-From%3CE%3E-for-Error"],[379,"impl-From%3CMigrateError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADwBKgAAAAAAAwAAAAUAAAAMAAAAEQAJABwABwAmAAAAKwABAC4AAAAzAAAATgAAAFEAAgBbABAAcwAAAHUABAB9AAAAjwAAAJoAAACgAAAAwQABAMQAIQDoAA4A+AAdABwBCQAtAQ4APQEAAEMBDgBWARIAcgEAAHoBAgCjAQAAuAEOAMgBAQDQARAA4gEyACECEQA1AgQAlQIAANcCAAALAwAAHgMAAGADAAA=","P":[[16,"T"],[26,""],[30,"T"],[32,""],[51,"T"],[56,""],[70,"U"],[75,""],[90,"T"],[92,"U,T"],[97,"U"],[102,""],[116,"V"],[182,""],[195,"T"],[229,""],[247,"T"],[262,""],[280,"Connect::Pool"],[281,""],[300,"__D"],[315,""],[360,"T"],[369,""],[370,"T"],[377,""],[378,"E"],[379,""],[380,"T"],[381,""],[388,"GetConnection::Conn"],[389,""],[401,"U"],[418,""],[439,"__S"],[454,""],[463,"T"],[478,""],[481,"U,T"],[498,"U"],[515,""],[545,"V"],[562,""],[589,"Connect::Pool"],[590,"GetConnection::Conn"],[591,""],[648,"Connect::Pool"],[649,""],[676,"GetConnection::Conn"],[677,""],[786,"Connect::Pool"],[787,""],[813,"GetConnection::Conn"],[814,""],[868,"T"],[869,""]]}],["mcaptcha",{"t":"IIFSSFFSFFFFSFFFFFFFSSSSFFFFSFFSSOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNOOCOCCOOCNNNNNNNNNNNNNNNNNNNCCCNNNNCNNNNNNNNNNNNNNNNNNNNNHNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNCOCOCOOOCCOCOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCEFCNNCNNNNHNNCCCNCOCHCCNNNNFFNNNNENNNNNNNNNNCNNNNCNNONNNNNNNNNNENNCCCNNHNNNNNNNNCONNNNNNFNNNNNCHNNNNHFNNNNNNNNNNNNNNNNNOFNNNNNNNNNNNNNNNNNNHFNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNOONNNONNHNNNNNNNNNNHFNNNFNNNNOONONNNNNNNOOOOONNNNNNNNNNNFNNNNNNNNHNNNNNNFNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNHFNNNNNNNNNNOFNNNHNNNNNNNNNNNNNNNNNNNNNFNNNFNNNCCHFNNNNNNNNNNNNFNNNNNNNNOONNONNNNFFFNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNOHNNNOOOHNNNNNNNNNNNNNNNONNNCCCCHCHCCFFNNNNNNNNNNNNNNNFONNNNONNNNNNNNNNONNNOONNNONCNNNNNNNNNNNNNNNHFNNNNNNNNNNNFNNNNNNNNNONNNNONNNNNNNNNNNFFNNNNNNNNONNNNNNNNOHHNNNNNNFNONNNNNNNNNNNNNNNNNNONNNNNNNNOOONNCNNHNNNNNNNNNNNNNNFHNNNNFNNNNONNNNNNNNONFFNNNNNNNNNNNNNNNNNNNNONNNNNNNNNFNNNNNNNNONNNNNNNNNNNNNNNNNONNNFNNNNOOONONNNNONNNOONFNNNNNNNNNNNNNNNNNFNNNONNNNNCNNNNNNNNNNFNNNNNONNNNNNNNFNNNNNNNNNNNNONNONNNNNNNONNNONNNONNCNNNNNNNNNNFFNNNHFFGFFGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNNNNNNNNOONNCNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNFNNNNONONNNNNNNNCCCCHFFNNNNNNNNNNNNNNNNNNNNONNNNONNNNONNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNFOONNNNOONNONNNNNNNNNNNFNNNNNNNNNNNNNONNNNFNNNNNNNNNNNNFONNNNNONNONNNNNNECCHCCFFNNNNNNNNNNNNNNNNNNNNONNNNNNNNNFNNHNNNONNNONNNNONNONNNNNNNNNNNNNNFNNNNNNONNNNQONNNNONONFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNNNONNOONNONNNNNNNNNFNNNOFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNONNNNNNNNNOFNNNSFONNONNONNNNONONOOONNNNFFGFFGFFGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOHFNCNNNHNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNONNNNNNFFNNNNNNNNONNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNONNCFONNHNNNNNNNNNNNNNNNNNFNNNNONNNNNNONNNNFPIPGNNNNNOOOQQNNNNNNONNNNNNNOOONNNNNNNSFSSSNNNNNNNNNNNNNNNNNONNNNNICCHHSSFNNNNNNNNNNNNNNNONNFSSNNNNNNNNNNNNNNNNFNNNNNNHFNNNNNNNNNNNNNNNNNNCHFNNNNNNNNNNNNNNNNFNNONNNONNNNONNNNFNNNNNNNNNNNNNNONNNCFSNNNNNNNNNNNNNNNNNNNHONPPPPPPFPPPFPPPPPPGIPPPPGPIFPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSCCHCCHCCCCHCFFSONNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNFFSONNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNONONNNNNNSFNNNNNNNONNNNNNNNNNNNONSFFSFOONNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNONNNNNNNNCHONNNNNNNNNNNNNNNNNFNNNNNONNNNNNNONFSNNNNNNNNNNNNNNNNNNNCNNFNNNCHCCONNNNNNNCNNFFSNNNNNNNNNNNNNNNNOONNNNNNOOONFNNNNONNNNNNNNNNNNNNNFNNNNNNONNNONOONNNONFSNNNNNNNNNNNNNNNNNNNFONNNNNNNNNNNNNNNNNNNNNNCOHFNNNNNNNNNNNNNFONNNNFNNNNONNONNNNNNNONCCCCCHCFFFFSOOFNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNFOOOOONNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNFFSFNNNNNNNNNNNNNNNNNNNNNNOFONNNNNNNNNNOONNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNFSNNNNNNNNNNNNNNNNNNFNNNNNNONNNNNNNNNFOONNNNOOONNNNNNNNONNNNNONFSNNNNNNNNNNNONNNNNONNOONNNONNNONNNNNNNFNNSFNNNNNNNNNNNNNNNONNNNFNNNNNNNNNOFNNNNCHONNNNNNNNNNNNNFNNNNNNNNNNONNNNSFONNONNOONNNONNNNOOOOONNNNFFONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNFNNNNNNNNNNONNNHFGSFFSPPFFFFFOONNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNONNNNNNNNONNNNNNNNNONNNNNNNNOOOOOOOOOOOOOONONOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNECHCFNNNNONNNNNNNNNNFFNNNNNNNNCNNNNNNNNFNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNFFFFFFIFFFFOOOOOOOOOOFKFFKNNNNNNNNNNNNNNNNNNMNNNNNOONNNNNNNNNMNNNNNNNNNNNNNNNNNNNNMNNMNNMNNNONNNNNNNNNNNNNNNFFKNNONNNNNNONNNNNNNNNNNNNNNMNNNNNNMNNMNNMNONNNNNNNNNNFFSSONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCHFNNNNNNNNNNNNNFNNNNNNNNNNNNON","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","","","","","","","","","","","","","","","","","","allow_demo","allow_registration","and","","","","","","","","","","","","","","","","","","","","api","append_to","","","","","","","","","","","","","","","","","","","","borrow","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","captcha","","clone","clone_into","clone_to_uninit","commercial","creds","data","database","date","db","","debug","demo","deref","","","","","","","","","","","","","","","","","","deserialize","docs","easy","email","eq","equivalent","","","errors","fmt","from","","","","","","","","","","","","","","","","","","","","get_identity_service","get_iter","get_json_err","into","","","","","","","","","","","","","","","","","","","","len","","","","","","","","","","","","","","","","","","","","mailer","main","or","","","","","","","","","","","","","","","","","","","","pages","redis","routes","server","settings","","smtp","source_code","static_assets","stats","","survey","","survey_secrets","to_owned","try_from","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","","","","vzip","","","","","","","","","","","","","","","","","","","","widget","v1","ROUTES","RedirectQuery","account","and","append_to","auth","borrow","borrow_mut","deserialize","from","get_middleware","into","len","mcaptcha","meta","notifications","or","pow","redirect_to","routes","services","stats","survey","try_from","try_into","type_id","vzip","AccountCheckPayload","AccountCheckResp","and","","append_to","","auth","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","delete","deserialize","","do_erased_serialize","","email","erased_serialize","","exists","fmt","","from","","get_iter","","into","","len","","mcaptcha","or","","password","routes","secret","serialize","","services","to_owned","","try_from","","try_into","","type_id","","username","val","vzip","","and","append_to","borrow","borrow_mut","delete_account","from","into","len","or","register","runners","services","try_from","try_into","type_id","vzip","delete_user","Email","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","deserialize","do_erased_serialize","email","email_exists","erased_serialize","fmt","from","","","get_iter","into","","","len","","","or","","","register","","serialize","services","set_email","to_owned","try_from","","","try_into","","","type_id","","","vzip","","","ChangePasswordReqest","UpdatePassword","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","confirm_new_password","","deserialize","do_erased_serialize","erased_serialize","fmt","from","","","","get_iter","into","","","len","","","new_password","","or","","","password","register","serialize","services","to_owned","try_from","","","try_into","","","type_id","","","update_password_runner","update_user_password","vzip","","","Account","and","append_to","borrow","borrow_mut","delete","email_exists","from","get_secret","into","len","new","or","try_from","try_into","type_id","update_email","update_password","update_secret","update_username","username_exists","vzip","and","","append_to","","borrow","","borrow_mut","","from","","get_secret","into","","len","","or","","register","","services","try_from","","try_into","","type_id","","update_user_secret","vzip","","Username","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","deserialize","do_erased_serialize","erased_serialize","fmt","from","","","get_iter","into","","","len","","","or","","","register","","runners","serialize","services","set_username","to_owned","try_from","","","try_into","","","type_id","","","username","username_exists","vzip","","","username_exists","and","","","append_to","","","borrow","","","borrow_mut","","","from","","","into","","","len","","","login","or","","","register","","","","routes","runners","services","signout","try_from","","","try_into","","","type_id","","","vzip","","","Auth","and","append_to","borrow","borrow_mut","from","get_login_route","into","len","login","logout","new","or","register","try_from","try_into","type_id","vzip","Login","Password","Register","and","","","append_to","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","confirm_password","deserialize","","","do_erased_serialize","","","email","erased_serialize","","","fmt","","","from","","","get_iter","","","into","","","len","","","login","login_runner","or","","","password","","","register_runner","serialize","","","to_owned","","","try_from","","","try_into","","","type_id","","","username","vzip","","","create","delete","easy","get","get_random","routes","services","stats","update","CreateCaptcha","MCaptchaDetails","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","create","description","deserialize","","do_erased_serialize","","duration","erased_serialize","","fmt","from","","","get_iter","into","","","key","len","","","levels","name","or","","","publish_benchmarks","register","runner","serialize","","to_owned","try_from","","","try_into","","","type_id","","","vzip","","","create","DeleteCaptcha","and","","append_to","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","delete","deserialize","do_erased_serialize","erased_serialize","fmt","from","","get_iter","into","","key","len","","or","","password","register","serialize","to_owned","try_from","","try_into","","type_id","","vzip","","TrafficPatternRequest","UpdateTrafficPattern","and","","","","append_to","","","","avg_traffic","borrow","","","","borrow_mut","","","","broke_my_site_traffic","calculate","calculate_with_percentile","clone","","clone_into","","clone_to_uninit","","create","default","description","deserialize","","do_erased_serialize","","erased_serialize","","fmt","","from","","","","get_iter","","into","","","","key","len","","","","or","","","","pattern","peak_sustainable_traffic","publish_benchmarks","register","","routes","serialize","","services","to_owned","","try_from","","","","try_into","","","","type_id","","","","update","update_runner","vzip","","","","Easy","and","append_to","borrow","borrow_mut","create","from","into","len","new","or","try_from","try_into","type_id","update","vzip","I32Levels","Levels","and","","","append_to","","","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","deserialize","","difficulty_factor","do_erased_serialize","","erased_serialize","","fmt","","from","","","get_captcha","get_iter","","into","","","len","","","levels","or","","","register","serialize","","to_owned","","try_from","","","try_into","","","type_id","","","visitor_threshold","vzip","","","Captcha","and","append_to","borrow","borrow_mut","create","delete","easy","from","get","into","len","new","or","stats","try_from","try_into","type_id","update","update_key","vzip","StatsPayload","and","","append_to","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deserialize","do_erased_serialize","erased_serialize","fmt","from","","get","get_iter","into","","key","len","","or","","register","routes","serialize","to_owned","try_from","","try_into","","type_id","","vzip","","Stats","and","append_to","borrow","borrow_mut","from","get","into","len","new","or","try_from","try_into","type_id","vzip","UpdateCaptcha","and","","","append_to","","","borrow","","","borrow_mut","","","description","deserialize","do_erased_serialize","duration","erased_serialize","from","","","into","","","key","len","","","levels","or","","","publish_benchmarks","register","","runner","serialize","try_from","","","try_into","","","type_id","","","update_captcha","update_key","vzip","","","update_captcha","BuildDetails","BuildDetailsBuilder","BuildDetailsBuilderError","Health","HealthBuilder","HealthBuilderError","UninitializedField","","ValidationError","","and","","","","","","","","append_to","","","","","","","","borrow","","","","","","","","borrow_mut","","","","","","","","build","","build_details","clone","","","","clone_into","","","","clone_to_uninit","","","","create_empty","","db","","","default","","deserialize","","do_erased_serialize","","erased_serialize","","fmt","","","","","","from","","","","","","","","","","","","get_iter","","","","git_commit_hash","","","health","into","","","","","","","","is_redis","len","","","","","","","","or","","","","","","","","redis","","","register","","routes","serialize","","services","to_owned","","","","to_string","","try_from","","","","","","","","try_into","","","","","","","","try_to_string","","type_id","","","","","","","","validate_ip","","validate_ipv4","","validate_ipv6","","version","","","vzip","","","","","","","","Meta","and","append_to","borrow","borrow_mut","build_details","from","health","into","len","new","or","try_from","try_into","type_id","vzip","add","get","mark_read","routes","services","AddNotificationRequest","add_notification","and","","append_to","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","default","deserialize","do_erased_serialize","eq","erased_serialize","fmt","from","","get_iter","heading","into","","len","","message","or","","register","serialize","to","to_owned","try_from","","try_into","","type_id","","vzip","","NotificationResp","and","","append_to","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","default","deserialize","do_erased_serialize","eq","erased_serialize","from","","","from_notifications","get_iter","get_notification","heading","id","into","","len","","message","name","or","","received","register","serialize","to_owned","try_from","","try_into","","type_id","","vzip","","MarkReadReq","and","","append_to","","borrow","","borrow_mut","","deserialize","do_erased_serialize","erased_serialize","from","","id","into","","len","","mark_read","or","","register","serialize","try_from","","try_into","","type_id","","vzip","","Notifications","add","and","append_to","borrow","borrow_mut","from","get","into","len","mark_read","new","or","try_from","try_into","type_id","vzip","I32Levels","get_config","routes","services","verify_pow","verify_token","ApiPoWConfig","GetConfigPayload","and","","","append_to","","","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","deserialize","","difficulty_factor","do_erased_serialize","","erased_serialize","","fmt","","from","","","get_config","get_iter","","init_mcaptcha","into","","","key","len","","","max_recorded_nonce","or","","","register","salt","serialize","","string","to_owned","","try_from","","","try_into","","","type_id","","","vzip","","","PoW","and","append_to","borrow","borrow_mut","from","get_config","","into","len","new","or","rm_scope","scope","try_from","try_into","type_id","validate_captcha_token","","verify_pow","","vzip","ApiWork","ValidationToken","and","","","append_to","","","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","deserialize","","do_erased_serialize","","erased_serialize","","fmt","","from","","","get_iter","","into","","","key","len","","","nonce","or","","","register","result","serialize","","string","time","to_owned","","token","try_from","","","try_into","","","type_id","","","verify_pow","vzip","","","worker_type","CaptchaValidateResp","VerifyCaptchaResultPayload","and","","","append_to","","","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","deserialize","","do_erased_serialize","","erased_serialize","","fmt","","from","","","get_iter","","into","","","key","len","","","or","","","register","secret","serialize","","to_owned","","token","try_from","","","try_into","","","type_id","","","valid","validate_captcha_token","vzip","","","ROUTES","Routes","account","and","append_to","auth","borrow","borrow_mut","captcha","from","get_login_route","into","len","meta","new","notifications","or","pow","stats","survey","try_from","try_into","type_id","vzip","BuildDetails","BuildDetailsBuilder","BuildDetailsBuilderError","PercentileReq","PercentileReqBuilder","PercentileReqBuilderError","PercentileResp","PercentileRespBuilder","PercentileRespBuilderError","UninitializedField","","","ValidationError","","","and","","","","","","","","","","append_to","","","","","","","","","","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","build","","","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","create_empty","","","default","","","deserialize","","","difficulty_factor","","","do_erased_serialize","","","erased_serialize","","","fmt","","","","","","","","","from","","","","","","","","","","","","","","","","get_iter","","","","","","git_commit_hash","","","into","","","","","","","","","","len","","","","","","","","","","or","","","","","","","","","","percentile","","","percentile_bench_runner","percentile_benches","register","routes","serialize","","","services","time","","","to_owned","","","","","","to_string","","","try_from","","","","","","","","","","try_into","","","","","","","","","","try_to_string","","","type_id","","","","","","","","","","validate_ip","","","validate_ipv4","","","validate_ipv6","","","version","","","vzip","","","","","","","","","","Stats","and","append_to","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deserialize","do_erased_serialize","eq","equivalent","","","erased_serialize","fmt","from","get_iter","into","len","new","or","percentile_benches","serialize","to_owned","try_from","try_into","type_id","vzip","Page","SurveySecretUpload","and","","","","append_to","","","","auth_token","borrow","","","","borrow_mut","","","","clone","clone_into","clone_to_uninit","deserialize","","do_erased_serialize","","download","eq","equivalent","","","erased_serialize","","fmt","from","","","","get_iter","into","","","","len","","","","or","","","","page","register","","routes","secret","","serialize","","services","to_owned","try_from","","","","try_into","","","","type_id","","","","vzip","","","","Survey","and","append_to","borrow","borrow_mut","download","from","get_download_route","into","len","new","or","secret","try_from","try_into","type_id","vzip","Data","Embedded","Mailer","Redis","SystemGroup","add_site","and","append_to","borrow","borrow_mut","captcha","creds","db","enum_system_actor","enum_system_wrapper","from","get_creds","get_mailer","get_pow","into","len","mailer","new","","new_system","or","register_survey","remove","rename","settings","stats","survey_secrets","try_from","try_into","type_id","upload_survey_job","validate_verification_tokens","verify_pow","vzip","DAY","Date","HOUR","MINUTE","WEEK","and","append_to","borrow","borrow_mut","clone","clone_into","clone_to_uninit","date","fmt","format","from","get_iter","into","len","new","or","print_date","time","to_owned","try_from","try_into","type_id","vzip","BoxDB","maria","pg","get_data","","DEMO_PASSWORD","DEMO_USER","DemoUser","abort","and","append_to","borrow","borrow_mut","delete_demo_user","from","into","len","or","register_demo_user","run","spawn","try_from","try_into","tx","type_id","vzip","Asset","DOCS","OPEN_API_SPEC","and","","","","append_to","","","","borrow","","","","borrow_mut","","","","dist","from","","","","get","","handle_embedded_file","index","into","","","","iter","","len","","","","matcher","or","","","","register","","","routes","services","spec","try_from","","","","try_into","","","","type_id","","","","vzip","","","","Docs","and","append_to","assets","borrow","borrow_mut","from","home","into","len","new","or","spec","try_from","try_into","type_id","vzip","UpdateEasyCaptcha","abort","and","append_to","borrow","borrow_mut","can_run","from","into","len","or","run","spawn","try_from","try_into","tx","type_id","update_captcha_configurations","vzip","verification","IndexPage","PAGE","and","append_to","borrow","borrow_mut","clone","clone_into","clone_to_uninit","from","get_iter","into","len","new","or","render_once","render_once_to","to_owned","try_from","try_into","type_id","verification","verification_link","vzip","AccountNotFound","BlacklistError","CaptchaError","CaptchaNotFound","ClosedForRegistration","DBError","DBErrorWrapper","EmailTaken","Err","","ErrorToResponse","InternalServerError","","NotAUrl","NotAnEmail","Ok","","PageError","PageResult","PasswordTooLong","PasswordTooShort","PasswordsDontMatch","ProfainityError","ServiceError","","ServiceResult","SmtpErrorWrapper","TokenNotFound","TrafficPatternNotFound","UnableToSendEmail","UsernameCaseMappedError","UsernameNotFound","UsernameTaken","WrongPassword","and","","","","","append_to","","","","","borrow","","","","","borrow_mut","","","","","deserialize","do_erased_serialize","eq","","","","erased_serialize","error","error_response","","fmt","","","","","","","","from","","","","","","","","","","","","","","","into","","","","","len","","","","","or","","","","","serialize","source","","","","status_code","","to_string","","","","try_from","","","","","try_into","","","","","try_to_string","","","","type_id","","","","","validate_ip","","","","validate_ipv4","","","","validate_ipv6","","","","vzip","","","","","NAME","auth","errors","get_middleware","panel","routes","services","sitemap","login","register","routes","services","sudo","INDEX","IndexPage","PAGE","__private_field","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","default","deref","from","","","get_iter","into","","","len","","","login","or","","","register","render_once","render_once_to","to_owned","try_from","","","try_into","","","type_id","","","vzip","","","INDEX","IndexPage","PAGE","__private_field","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","default","deref","from","","","get_iter","into","","","join","len","","","or","","","register","render_once","render_once_to","to_owned","try_from","","","try_into","","","type_id","","","vzip","","","Auth","and","append_to","borrow","borrow_mut","from","get_login_route","get_sitemap","into","join","len","login","new","or","try_from","try_into","type_id","vzip","PAGE","SudoPage","and","append_to","borrow","borrow_mut","clone","clone_into","clone_to_uninit","data","from","get_iter","into","len","new","or","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","","and","","","","append_to","","","","borrow","","","","borrow_mut","","","","clone","clone_into","clone_to_uninit","deref","","error","from","","","","get_iter","into","","","","len","","","","message","new","or","","","","register","render_once","render_once_to","routes","services","title","to_owned","try_from","","","","try_into","","","","type_id","","","","vzip","","","","Errors","and","append_to","borrow","borrow_mut","from","internal_server_error","into","len","new","or","try_from","try_into","type_id","unknown_error","vzip","IndexPage","PAGE","and","","append_to","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","from","","get_iter","into","","len","","new","notifications","or","","panel","register","render_once","render_once_to","routes","services","settings","sitekey","sitekeys","to_owned","try_from","","try_into","","type_id","","utils","vzip","","IndexPage","Notification","PAGE","and","","","append_to","","","borrow","","","borrow_mut","","","from","","","","heading","id","into","","","len","","","message","n","name","new","notifications","or","","","print_date","received","register","render_once","render_once_to","try_from","","","try_into","","","type_id","","","vzip","","","Panel","and","append_to","borrow","borrow_mut","from","get_sitemap","home","into","len","new","notifications","or","settings","sitekey","try_from","try_into","type_id","utils","vzip","IndexPage","PAGE","and","","","","append_to","","","","borrow","","","","borrow_mut","","","","clone","clone_into","clone_to_uninit","delete_account","email","from","","","","get_iter","into","","","","len","","","","or","","","","register","","","render_once","render_once_to","routes","secret","services","settings","to_owned","try_from","","","","try_into","","","","type_id","","","","update_secret","username","vzip","","","","Settings","and","append_to","borrow","borrow_mut","delete_account","from","get_sitemap","home","into","len","new","or","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","","advance","and","","","","","","append_to","","","","","","avg_traffic","borrow","","","","","","borrow_mut","","","","","","broke_my_site_traffic","clone","","clone_into","","clone_to_uninit","","default","","deref","","easy","form_description","","form_duration","form_title","","from","","","","","","get_iter","","into","","","","","","len","","","","","","levels","or","","","","","","peak_sustainable_traffic","register","","render_once","","render_once_to","","to_owned","","try_from","","","","","","try_into","","","","","","type_id","","","","","","vzip","","","","","","and","append_to","borrow","borrow_mut","delete_sitekey","from","into","len","or","register","try_from","try_into","type_id","vzip","AdvanceEditPage","EasyEditPage","PAGE","advance","and","","","","append_to","","","","borrow","","","","borrow_mut","","","","clone","","clone_into","","clone_to_uninit","","duration","easy","form_title","from","","","","get_iter","","into","","","","key","","len","","","","levels","name","new","","or","","","","pattern","publish_benchmarks","register","","render_once","","render_once_to","","to_owned","","try_from","","","","try_into","","","","type_id","","","","vzip","","","","IndexPage","PAGE","and","","append_to","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","from","","get_iter","into","","len","","list_sitekeys","new","or","","register","render_once","render_once_to","sitekeys","to_owned","try_from","","try_into","","type_id","","vzip","","Sitekey","add_advance","add_easy","and","append_to","borrow","borrow_mut","delete","edit_advance","edit_easy","from","get_delete","get_edit_advance","get_edit_easy","get_sitemap","get_view","into","len","list","new","or","try_from","try_into","type_id","view","vzip","IndexPage","PAGE","and","","append_to","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","duration","from","","get_iter","into","","key","len","","levels","name","new","or","","publish_benchmarks","register","render_once","render_once_to","stats","to_owned","try_from","","try_into","","type_id","","view_sitekey","vzip","","PAGE","PercentilePage","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","difficulty_factor","from","","","get_iter","get_percentile","into","","","len","","","or","","","percentile","post_percentile","register","","render_once","render_once_to","routes","services","time","to_owned","try_from","","","try_into","","","type_id","","","vzip","","","Utils","and","append_to","borrow","borrow_mut","from","get_sitemap","into","len","new","or","percentile","try_from","try_into","type_id","vzip","ROUTES","Routes","about","and","append_to","auth","borrow","borrow_mut","donate","errors","from","get_login_route","get_sitemap","home","into","len","new","or","panel","privacy","security","sitemap","thanks","try_from","try_into","type_id","vzip","INDEX","IndexPage","__private_field","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","default","deref","domain","from","","","get_iter","into","","","len","","","or","","","register","render_once","render_once_to","sitemap","to_owned","try_from","","","try_into","","","type_id","","","urls","vzip","","","services","Captcha","DBType","DEPRECATED_ENV_VARS","Database","DefaultDifficultyStrategy","ENV_VAR_CONFIG","Maria","Postgres","Redis","Server","Settings","Smtp","Survey","allow_demo","allow_registration","and","","","","","","","","append_to","","","","","","","","avg_traffic_difficulty","avg_traffic_time","borrow","","","","","","","","borrow_mut","","","","","","","","broke_my_site_traffic_difficulty","broke_my_site_traffic_time","captcha","check_easy_captcha_config","check_url","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","commercial","cookie_secret","database","database_type","debug","default_difficulty_strategy","deserialize","","","","","","","","do_erased_serialize","domain","duration","enable_stats","env_override","eq","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","erased_serialize","fmt","","","","","","","","","from","","","","","","","","","from_url","gc","get_ip","get_iter","","","","","","","","instance_root_url","into","","","","","","","","ip","len","","","","","","","","new","nodes","or","","","","","","","","password","peak_sustainable_traffic_difficulty","peak_sustainable_traffic_time","pool","","port","","proxy_has_tls","queue_length","rate_limit","redis","reply","runners","salt","serialize","server","set_database_type","smtp","source_code","survey","to_owned","","","","","","","","to_string","try_from","","","","","","","","try_into","","","","","","","","try_to_string","type_id","","","","","","","","url","","","url_prefix","username","validate_ip","validate_ipv4","validate_ipv6","vzip","","","","","","","","FileMap","filemap","services","static_files","FileMap","and","append_to","borrow","borrow_mut","files","from","get","into","len","new","or","try_from","try_into","type_id","vzip","Asset","Favicons","and","","","","append_to","","","","assets","borrow","","","","borrow_mut","","","","favicons","from","","","","get","","","","handle_assets","handle_favicons","into","","","","iter","","","","len","","","","matcher","","or","","","","register","","static_files","try_from","","","","try_into","","","","type_id","","","","vzip","","","","BAR_CHART","CREDIT_CARD","DOCS_ICON","GITHUB","HELP_CIRCLE","HOME","Img","KEY","MCAPTCHA_TRANS_ICON","MESSAGE","SETTINGS_ICON","__private_field","","","","","","","","","","CaptchaStats","CloneStats","Dummy","Real","Stats","and","","","append_to","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_stats","","","clone_to_uninit","","","config_fetches","confirms","default","","","deserialize","do_erased_serialize","eq","","","erased_serialize","fetch","","","fmt","","","from","","","get_iter","","","into","","","len","","","or","","","record_confirm","","","record_fetch","","","record_solve","","","serialize","solves","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","SecretsStore","Survey","SurveyClientTrait","and","","app_ctx","append_to","","borrow","","borrow_mut","","client","clone","","clone_into","","clone_to_uninit","","default","fmt","from","","get","get_iter","","into","","is_online","","len","","new","or","","register","","rm","schedule_upload_job","","set","start_job","","store","to_owned","","try_from","","try_into","","type_id","","vzip","","INDEX_PAGE","IndexPage","PAGE","WIDGET_ROUTES","__private_field","and","","","append_to","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","deref","from","","","get_iter","into","","","len","","","new","or","","","register","render_once","render_once_to","routes","services","show_widget","to_owned","try_from","","","try_into","","","type_id","","","vzip","","","Widget","and","append_to","borrow","borrow_mut","from","into","len","new","or","try_from","try_into","type_id","verification_widget","vzip"],"q":[[0,"mcaptcha"],[357,"mcaptcha::api"],[358,"mcaptcha::api::v1"],[385,"mcaptcha::api::v1::account"],[442,"mcaptcha::api::v1::account::delete"],[458,"mcaptcha::api::v1::account::delete::runners"],[459,"mcaptcha::api::v1::account::email"],[512,"mcaptcha::api::v1::account::password"],[570,"mcaptcha::api::v1::account::routes"],[592,"mcaptcha::api::v1::account::secret"],[621,"mcaptcha::api::v1::account::username"],[675,"mcaptcha::api::v1::account::username::runners"],[676,"mcaptcha::api::v1::auth"],[721,"mcaptcha::api::v1::auth::routes"],[739,"mcaptcha::api::v1::auth::runners"],[817,"mcaptcha::api::v1::mcaptcha"],[826,"mcaptcha::api::v1::mcaptcha::create"],[887,"mcaptcha::api::v1::mcaptcha::create::runner"],[888,"mcaptcha::api::v1::mcaptcha::delete"],[927,"mcaptcha::api::v1::mcaptcha::easy"],[1014,"mcaptcha::api::v1::mcaptcha::easy::routes"],[1030,"mcaptcha::api::v1::mcaptcha::get"],[1093,"mcaptcha::api::v1::mcaptcha::routes"],[1114,"mcaptcha::api::v1::mcaptcha::stats"],[1153,"mcaptcha::api::v1::mcaptcha::stats::routes"],[1168,"mcaptcha::api::v1::mcaptcha::update"],[1219,"mcaptcha::api::v1::mcaptcha::update::runner"],[1220,"mcaptcha::api::v1::meta"],[1399,"mcaptcha::api::v1::meta::routes"],[1415,"mcaptcha::api::v1::notifications"],[1420,"mcaptcha::api::v1::notifications::add"],[1462,"mcaptcha::api::v1::notifications::get"],[1507,"mcaptcha::api::v1::notifications::mark_read"],[1539,"mcaptcha::api::v1::notifications::routes"],[1556,"mcaptcha::api::v1::pow"],[1562,"mcaptcha::api::v1::pow::get_config"],[1628,"mcaptcha::api::v1::pow::routes"],[1650,"mcaptcha::api::v1::pow::verify_pow"],[1717,"mcaptcha::api::v1::pow::verify_token"],[1781,"mcaptcha::api::v1::routes"],[1805,"mcaptcha::api::v1::stats"],[2041,"mcaptcha::api::v1::stats::routes"],[2070,"mcaptcha::api::v1::survey"],[2147,"mcaptcha::api::v1::survey::routes"],[2164,"mcaptcha::data"],[2174,"mcaptcha"],[2177,"mcaptcha::data"],[2180,"mcaptcha"],[2182,"mcaptcha::data"],[2185,"mcaptcha"],[2186,"mcaptcha::data"],[2187,"mcaptcha"],[2188,"mcaptcha::data"],[2190,"mcaptcha"],[2191,"mcaptcha::data"],[2193,"mcaptcha"],[2196,"mcaptcha::data"],[2199,"mcaptcha"],[2200,"mcaptcha::data"],[2203,"mcaptcha::date"],[2231,"mcaptcha::db"],[2234,"mcaptcha::db::maria"],[2235,"mcaptcha::db::pg"],[2236,"mcaptcha::demo"],[2257,"mcaptcha::docs"],[2322,"mcaptcha::docs::routes"],[2339,"mcaptcha::easy"],[2358,"mcaptcha::email"],[2359,"mcaptcha::email::verification"],[2383,"mcaptcha::errors"],[2532,"mcaptcha::pages"],[2540,"mcaptcha::pages::auth"],[2545,"mcaptcha::pages::auth::login"],[2596,"mcaptcha::pages::auth::register"],[2647,"mcaptcha::pages::auth::routes"],[2665,"mcaptcha::pages::auth::sudo"],[2689,"mcaptcha::pages::errors"],[2760,"mcaptcha::pages::errors::routes"],[2776,"mcaptcha::pages::panel"],[2819,"mcaptcha::pages::panel::notifications"],[2871,"mcaptcha::pages::panel::routes"],[2891,"mcaptcha::pages::panel::settings"],[2959,"mcaptcha::pages::panel::settings::routes"],[2977,"mcaptcha::pages::panel::sitekey"],[2984,"mcaptcha::pages::panel::sitekey::add"],[3094,"mcaptcha::pages::panel::sitekey::delete"],[3108,"mcaptcha::pages::panel::sitekey::edit"],[3187,"mcaptcha::pages::panel::sitekey::list"],[3224,"mcaptcha::pages::panel::sitekey::routes"],[3250,"mcaptcha::pages::panel::sitekey::view"],[3292,"mcaptcha::pages::panel::utils"],[3346,"mcaptcha::pages::panel::utils::routes"],[3362,"mcaptcha::pages::routes"],[3389,"mcaptcha::pages::sitemap"],[3441,"mcaptcha::routes"],[3442,"mcaptcha::settings"],[3455,"mcaptcha"],[3457,"mcaptcha::settings"],[3493,"mcaptcha"],[3496,"mcaptcha::settings"],[3520,"mcaptcha"],[3521,"mcaptcha::settings"],[3522,"mcaptcha"],[3523,"mcaptcha::settings"],[3524,"mcaptcha"],[3525,"mcaptcha::settings"],[3538,"mcaptcha"],[3539,"mcaptcha::settings"],[3619,"mcaptcha"],[3620,"mcaptcha::settings"],[3639,"mcaptcha"],[3640,"mcaptcha::settings"],[3644,"mcaptcha"],[3649,"mcaptcha::settings"],[3699,"mcaptcha::static_assets"],[3703,"mcaptcha::static_assets::filemap"],[3719,"mcaptcha::static_assets::static_files"],[3786,"mcaptcha::static_assets::static_files::assets"],[3797,"mcaptcha"],[3807,"mcaptcha::stats"],[3894,"mcaptcha::survey"],[3948,"mcaptcha::widget"],[4002,"mcaptcha::widget::routes"],[4017,"tower_http::follow_redirect::policy::and"],[4018,"tower_http::follow_redirect::policy"],[4019,"alloc::vec"],[4020,"argon2_creds::config"],[4021,"alloc::boxed"],[4022,"alloc::string"],[4023,"core::result"],[4024,"serde_core::de"],[4025,"core::fmt"],[4026,"actix_identity::cookie"],[4027,"actix_identity::middleware"],[4028,"actix_web::types::json"],[4029,"core::option"],[4030,"std::io::error"],[4031,"tower_http::follow_redirect::policy::or"],[4032,"core::any"],[4033,"actix_auth_middleware"],[4034,"actix_web::config"],[4035,"erased_serde::ser"],[4036,"erased_serde::error"],[4037,"serde_core::ser"],[4038,"db_core"],[4039,"libmcaptcha::defense"],[4040,"derive_builder::error"],[4041,"alloc::collections"],[4042,"libmcaptcha::master::messages"],[4043,"lettre::executor"],[4044,"lettre::transport::smtp::async_transport"],[4045,"libmcaptcha::pow"],[4046,"libmcaptcha::errors"],[4047,"alloc::sync"],[4048,"actix::address"],[4049,"libmcaptcha::system"],[4050,"libmcaptcha::master"],[4051,"libmcaptcha::cache"],[4052,"libmcaptcha::cache::messages"],[4053,"time::offset_date_time"],[4054,"tokio::sync::oneshot"],[4055,"tokio::runtime::task::join"],[4056,"rust_embed_utils"],[4057,"actix_web::response::response"],[4058,"alloc::borrow"],[4059,"core::iter::traits::iterator"],[4060,"rust_embed"],[4061,"sailfish::runtime::render"],[4062,"sailfish::runtime::buffer"],[4063,"db_core::errors"],[4064,"validator::types"],[4065,"url::parser"],[4066,"argon2_creds::errors"],[4067,"lettre::transport::smtp::error"],[4068,"tokio::sync::oneshot::error"],[4069,"core::error"],[4070,"http::status"],[4071,"core::clone"],[4072,"config::builder"],[4073,"url"],[4074,"config::error"],[4075,"libcachebust::filemap"],[4076,"core::future::future"],[4077,"core::pin"],[4078,"reqwest::async_impl::client"]],"i":"`````````````````````````````````nAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbCd0D`1nAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`Cb`D`CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD`CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD`CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD`Cd00001`0``10`nAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbCd```0000`0D`1nAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`Cb`Cd`D`1nAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD`CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD``0CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`Cb`Cd`0`D`11``0`10101nAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD`CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD`CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`CbD`CdnAbAdAfAhAjAlAnB`BbBdBfBhBjBlBnC`Cb`````Gb0`0000`00```0`0````0000``GhGj10`1010101010`1010`1001010101010`10```10`10101010`110Hd000`00000``0000``HlHnI`210210210222222`222102210210210102``2210210210210``IdIbIf2102102101112111112210121021021210101`1210210210``210`Ih00000000000000000000IjIl10101010`10101010`101010`10`J`InJb2102102101111111210121021021020`1``12102102101`210`JdJfJh210210210210210210`210`210````210210210210`Jj0000000000000000```JlJnK`210210210210210210221021022102102102102102101`210210`2102102102102102210```````````KdKbKf210210210111`221212211210121012102121020`211210210210210``KhKj101010111`11111011011010101110101010``KlLfLdLh32103321032103``313131`3331313131321031321013210321013320`31`31321032103210``3210`Lj00000000000000``MbLlLn210210210101010100101010210`102102101210210102102102100210`Md0000000000000000000`MhMj101010111111110`110110100`1110101010`Mf0000000000000`MnMlN`2102102101111121021012101210120`1210210210``210```````NfNl10NdNb3O`NjNh5Ob54732160547321605473216041`54215421542141121415252525772665477732166605421454`547321602547321605473216012130`52`5421765473216054732160765473216076767645454732160`Of00000000000000```````OhOj10101011111111110111010110011110101010`OlA@b1010101111111111011`1110101110101110101010`A@dA@f1010101111011010`100110101010`A@h000000000000000````````A@jA@lA@n210210210212121211212121210`21`210221012100121121210210210210`AA`0000000000`000000000``AAbAAdAAh210210210212121212121212102121012101210012111212210210210`2101``AAjAAlAAn2102102102121212121212121021210121021001212112102102102`210``j000000000000000000000`````````ABhABnACd210ABfABd4AChABlABj6ACbAC`76594328107659432810765943281075206532106532106532105205206310106316316993881776599943288810777653210565659432810765943281076594328107232``4`631`2326532109876594328107659432810798765943281079879879875656594328107`AB`000000000000000000000000000``AClACnACjAD`32101321032103333131`333331332103321032103210320``131`33210321032103210`ABb000000000000000`Db`0`00000D`00``100111010110110001110111`````AEn0000000000000000000000````````AFd00000000000000000```BD`AGjAGlAGn321032103210`321033``321033321033210210```3210321032103210`f000000000000000`AH`00000000000000000```AHb000000000000000000`00Hj00000`0BDbBDd`2AI`3321``3333`0``3333333AHlAHn5AHj321603216032160300216300632211663321666666666033321603216032160302163632163216032160321632160321632163216321603````````````````AJfAJh1AJj120120120111121201120120`1200111120120120120```AJlAJn1AK`120120120111121201120`1201200111120120120120`AKb0000000000000000``AKf000000000000000000000`````AKnAL`ALb21ALd13201320132011132`1320113201320111320011``111320132013201320`ALf00000000000000``ALhALl10101011110110101`10`011````11101010`10```ALnAM`AMb2102102102210222102102121`21022011210210210210`AMd000000000000000000``AMlAMnAN`ANb321032103210333`33210332103210321021033`3``3321032103210`33210`AMf0000000000000000````````````ANdANf`10ANjANlANhANn543210154321054321013131313154`31331543210315432105432103543210120313131543210543210543210543210AO`000`000000000````AObAOfAOdAOh3210321032103131313`132103132103132103331321013203131313210321032103210``AOjAOl1010101111011010`1100111110101010`AMh000000000000000000000000``AOnB@b10101011111011011011110101111101010`10``B@dB@fB@h21021021022222102`2102102102`1022``22210210210210`AMj00000000000000``h000000000000000000000000``B@jB@l1B@n1201201201111211201120120120011`11201201201120```````BAb0`````Cd0FlDdL`BA`5DjBAdBAf654382104465438210654382104477765438210654382106543821076727565438210864576543821066655544433388822211100086543882106543821038566543821006543821066543821070654382103442163650735587777765438210865438210654382108654382103216388865438210`````Eb00000000000000``BDfBBdBDhBBf3210`32103210`32103311``32103311321031321020`3210321032103210```````````nAbAdAfAhAjAlAnB`Bb`````B@`BBhBBj210210210210210BBl2132133321333213BBn3243243243243243243203203203244432432432432432```FnBCd01010100101010111011010BCh1211210120120122121212121````BCjBCl1BCn120120120111212011201201120011```1120120120120`l0000000000000","f":"```{{}b}{{}d}``{{}f}````1```````{{}h}222````{{}j}``3{{}l}{nA`}{AbA`}{AdA`}{AfA`}{AhA`}{AjA`}{AlA`}{AnA`}{B`A`}{BbA`}{BdA`}{BfA`}{BhA`}{BjA`}{BlA`}{BnA`}{C`A`}{CbA`}{CdCf}0{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000000000000000000`{{{d{Cl{Cn{c}}}}}A`{}}0000000000000000000{d{{d{c}}}{}}0000000000000000000{{{d{Cl}}}{{d{Clc}}}{}}0000000000000000000{D`Db}{CdDd}{{{d{Cd}}}Cd}{{d{d{Clc}}}A`{}}{{dDf}A`}9{D`Dh}`{CdDj}``{D`Dl}<`{{{d{n}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Ab}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Ad}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Af}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Ah}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Aj}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Al}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{An}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{B`}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Bb}}}{{d{{E`{{d{Dn}}{d{Dn}}}}}}}}{{{d{Bd}}}{{d{Cd}}}}{{{d{Bf}}}{{d{Eb}}}}{{{d{Bh}}}{{d{{d{Dn}}}}}}{{{d{Bj}}}{{d{{d{Dn}}}}}}{{{d{Bl}}}{{d{{d{Dn}}}}}}{{{d{Bn}}}{{d{{d{Dn}}}}}}{{{d{C`}}}{{d{{d{Dn}}}}}}{{{d{Cb}}}{{d{Ed}}}}{c{{Ef{Cd}}}Eh}```{{{d{Cd}}{d{Cd}}}Cf}{{d{d{c}}}Cf{}}00`{{{d{Cd}}{d{ClEj}}}El}{cc{}}0000000000000000000{{{d{Cd}}}{{F`{En}}}}{d}{{}Fb}{{}c{}}0000000000000000000{dFd}0000000000000000000{D`Ff}{{}{{Fh{A`}}}}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000000000000000000`{CdFf}`{CdFl}`{D`Cd}2{CdEd}``{D`Dl}`4{D`Fn}{dc{}}{c{{Ef{e}}}{}{}}0000000000000000000{{}{{Ef{c}}}{}}0000000000000000000{dG`}0000000000000000000{{}c{}}0000000000000000000`````{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}`{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{c{{Ef{Gb}}}Eh}{cc{}}{{}{{Gd{j}}}}{{}c{}}{dFd}```{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}`{GbFf}`{{{d{ClGf}}}A`}``?>=<``;;::`9988{{{d{Gh}}}Gh}{{{d{Gj}}}Gj}{{d{d{Clc}}}A`{}}0{{dDf}A`}0`{c{{Ef{Gh}}}Eh}{c{{Ef{Gj}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0`{{d{d{ClGl}}}{{Ef{A`H`}}}}0{GjCf}{{{d{Gh}}{d{ClEj}}}El}{{{d{Gj}}{d{ClEj}}}El}{cc{}}0{d}0{{}c{}}0{dFd}0`{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0```{{{d{Gh}}c}EfHb}{{{d{Gj}}c}EfHb}{{{d{ClGf}}}A`}{dc{}}0{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0`{GhEd}{{}c{}}0{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}`{cc{}}{{}c{}}{dFd}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{Hd{d{ClHf}}}A`}`?=<;9{{{d{Dn}}{d{Hh}}}{{Ef{A`Hj}}}}`999888777666{{{d{Hl}}}Hl}{{d{d{Clc}}}A`{}}{{dDf}A`}{c{{Ef{Hl}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{HlEd}`{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{Hl}}{d{ClEj}}}El}==={d}===<<<;;;{{Hn{d{ClHf}}}A`}{{I`{d{ClHf}}}A`}{{{d{Hl}}c}EfHb}{{{d{ClGf}}}A`}`{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00``{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{Ib}}}Ib}{{d{d{Clc}}}A`{}}{{dDf}A`}{IdEd}{IbEd}{c{{Ef{Ib}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{Ib}}{d{ClEj}}}El}{cc{}}{IbId}11{d}{{}c{}}00{dFd}00:9{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00:{{If{d{ClHf}}}A`}{{{d{Ib}}c}EfHb}{{{d{ClGf}}}A`}{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{{d{Dn}}Id{d{D`}}}{{Ef{A`Hj}}}}`{{}c{}}00`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{Ihd}0{cc{}}1{{}c{}}{dFd}{{}Ih}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}>=<55555:9988776644`332200{{Ij{d{ClHf}}}A`}{{Il{d{ClHf}}}A`}{{{d{ClGf}}}A`}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0`{{}c{}}0`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{In}}}In}{{d{d{Clc}}}A`{}}{{dDf}A`}{c{{Ef{In}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{In}}{d{ClEj}}}El}{cc{}}00{d}{{}c{}}00{dFd}00{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{J`{d{ClHf}}}A`}{{Jb{d{ClHf}}}A`}`{{{d{In}}c}EfHb}{{{d{ClGf}}}A`}`{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{InEd}`{{}c{}}00{{{d{Gh}}{d{Hh}}}{{Ef{GjHj}}}}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{cc{}}00{{}c{}}00{dFd}00`{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00`{{Jd{d{ClHf}}}A`}{{Jf{d{ClHf}}}A`}{{Jh{d{ClHf}}}A`}``{{{d{ClGf}}}A`}`{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00`?>=<;{{{d{Jj}}{Ff{{d{Dn}}}}}Ed};:{Jjd}0{{}Jj};16543```{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{Jl}}}Jl}{{{d{Jn}}}Jn}{{{d{K`}}}K`}{{d{d{Clc}}}A`{}}00{{dDf}A`}00{JlEd}{c{{Ef{Jl}}}Eh}{c{{Ef{Jn}}}Eh}{c{{Ef{K`}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}00{JlFf}{{d{d{ClGl}}}{{Ef{A`H`}}}}00{{{d{Jl}}{d{ClEj}}}El}{{{d{Jn}}{d{ClEj}}}El}{{{d{K`}}{d{ClEj}}}El}{cc{}}00{d}00{{}c{}}00{dFd}00{JnEd}{{Jn{d{Hh}}}{{Ef{EdHj}}}}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{JlEd}3{K`Ed}{{{d{Jl}}{d{Hh}}}{{Ef{A`Hj}}}}{{{d{Jl}}c}EfHb}{{{d{Jn}}c}EfHb}{{{d{K`}}c}EfHb}{dc{}}00{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}009{{}c{}}00````{FdEd}`{{{d{ClGf}}}A`}````{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{Kb}}}Kb}{{d{d{Clc}}}A`{}}{{dDf}A`}`{KdEd}{c{{Ef{Kd}}}Eh}{c{{Ef{Kb}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0{Kdb}{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{Kb}}{d{ClEj}}}El}{cc{}}00{d}{{}c{}}00{KbEd}{dFd}00{KdCn}2{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{KdCf}{{Kf{d{ClHf}}}A`}`{{{d{Kd}}c}EfHb}{{{d{Kb}}c}EfHb}{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00{{{d{Kd}}{d{Hh}}{d{Dn}}}{{Ef{KbHj}}}}`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{{{d{Cl{Cn{c}}}}}A`{}}0{d{{d{c}}}{}}0{{{d{Cl}}}{{d{Clc}}}{}}0{{{d{Kh}}}Kh}{{d{d{Clc}}}A`{}}{{dDf}A`}`{c{{Ef{Kh}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{Kh}}{d{ClEj}}}El}{cc{}}0{d}{{}c{}}0{KhEd}{dFd}0{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}02{{Kj{d{ClHf}}}A`}{{{d{Kh}}c}EfHb}{dc{}}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0{{}c{}}0``{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{{d{Cl{Cn{c}}}}}A`{}}000{Klb}{d{{d{c}}}{}}000{{{d{Cl}}}{{d{Clc}}}{}}000{KlFf}{{{d{Kn}}{d{L`}}}{{Ef{{Cn{Lb}}Hj}}}}{{{d{Hh}}{d{Kn}}}{{Ef{{Ff{{Cn{Lb}}}}Hj}}}}{{{d{Kl}}}Kl}{{{d{Ld}}}Ld}{{d{d{Clc}}}A`{}}0{{dDf}A`}0`{{}Kl}{KlEd}{c{{Ef{Kl}}}Eh}{c{{Ef{Ld}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{Kl}}{d{ClEj}}}El}{{{d{Ld}}{d{ClEj}}}El}{cc{}}000{d}0{{}c{}}000{LdEd}{dFd}000{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{LdKl}{Klb}{KlCf}{{Lf{d{ClHf}}}A`}{{Lh{d{ClHf}}}A`}`{{{d{Kl}}c}EfHb}{{{d{Ld}}c}EfHb}{{{d{ClGf}}}A`}{dc{}}0{c{{Ef{e}}}{}{}}000{{}{{Ef{c}}}{}}000{dG`}000`{{{d{Hh}}LdEd}{{Ef{A`Hj}}}}{{}c{}}000`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{Ljd}{cc{}}{{}c{}}{dFd}{{}Lj}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}>=<5:``999888777666{{{d{Ll}}}Ll}{{{d{Ln}}}Ln}{{d{d{Clc}}}A`{}}0{{dDf}A`}0{c{{Ef{Ll}}}Eh}{c{{Ef{Ln}}}Eh}{LnM`}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{Ll}}{d{ClEj}}}El}{{{d{Ln}}{d{ClEj}}}El}???`{d}0???>>>{LlLn}==={{Mb{d{ClHf}}}A`}{{{d{Ll}}c}EfHb}{{{d{Ln}}c}EfHb}{dc{}}0{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00={{}c{}}00`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{Mdd}0{MdLj}{cc{}}2{{}c{}}{dFd}{{}Md}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{MdMf}?>=77<`;;::9988{{{d{Mh}}}Mh}{{d{d{Clc}}}A`{}}{{dDf}A`}{c{{Ef{Mh}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{Mh}}{d{ClEj}}}El}<<`{d}<<{MhEd}<<::{{Mj{d{ClHf}}}A`}`{{{d{Mh}}c}EfHb}{dc{}}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0{{}c{}}0`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}{Mfd}{{}c{}}{dFd}{{}Mf}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}=<;:`999888777666{MlEd}{c{{Ef{Ml}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{Mlb}{{d{d{ClGl}}}{{Ef{A`H`}}}}:::8884777{MlCn}666{MlCf}{{Mn{d{ClHf}}}A`}{{N`{d{ClHf}}}A`}`{{{d{Ml}}c}EfHb}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00``{{}c{}}00{{{d{Ml}}{d{Hh}}{d{Dn}}}{{Ef{A`Hj}}}}``````````{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000000{{{d{Cl{Cn{c}}}}}A`{}}0000000{d{{d{c}}}{}}0000000{{{d{Cl}}}{{d{Clc}}}{}}0000000{{{d{Nb}}}{{Ef{NdNf}}}}{{{d{Nh}}}{{Ef{NjNl}}}}`{{{d{Nd}}}Nd}{{{d{Nb}}}Nb}{{{d{Nj}}}Nj}{{{d{Nh}}}Nh}{{d{d{Clc}}}A`{}}000{{dDf}A`}000{{}Nb}{{}Nh}{{{d{ClNh}}Cf}{{d{ClNh}}}}{NjCf}{NhFf}43{c{{Ef{Nd}}}Eh}{c{{Ef{Nj}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{Nd}}{d{ClEj}}}El}{{{d{Nf}}{d{ClEj}}}El}0{{{d{Nj}}{d{ClEj}}}El}{{{d{Nl}}{d{ClEj}}}El}0{cc{}}0{EdNf}1{NnNf}2222{NnNl}{EdNl}4{d}000{{{d{ClNb}}{d{Dn}}}{{d{ClNb}}}}{Ndd}{NbFf}`{{}c{}}0000000{{{d{{Ff{Cf}}}}}Cf}{dFd}0000000{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000000{{{d{ClNh}}{Ff{Cf}}}{{d{ClNh}}}}{NjFf}{NhFf}{{O`{d{ClHf}}}A`}{{Ob{d{ClHf}}}A`}`{{{d{Nd}}c}EfHb}{{{d{Nj}}c}EfHb}{{{d{ClGf}}}A`}{dc{}}000{dEd}0{c{{Ef{e}}}{}{}}0000000{{}{{Ef{c}}}{}}0000000{d{{Ef{EdOd}}}}0{dG`}0000000{dCf}00000{{{d{ClNb}}{d{Dn}}}{{d{ClNb}}}}{Ndd}{NbFf}{{}c{}}0000000`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{Ofd}{cc{}}1{{}c{}}{dFd}{{}Of}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}=````{{{d{ClGf}}}A`}``==<<;;::{{{d{Oh}}}Oh}{{d{d{Clc}}}A`{}}{{dDf}A`}{{}Oh}{c{{Ef{Oh}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{{d{Oh}}{d{Oh}}}Cf}{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{Oh}}{d{ClEj}}}El}{cc{}}0{d}{OhEd}{{}c{}}0{dFd}02{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{{Oj{d{ClHf}}}A`}{{{d{Oh}}c}EfHb}5{dc{}}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0{{}c{}}0`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{{{d{Cl{Cn{c}}}}}A`{}}0{d{{d{c}}}{}}0{{{d{Cl}}}{{d{Clc}}}{}}0{{{d{Ol}}}Ol}{{d{d{Clc}}}A`{}}{{dDf}A`}{{}Ol}{c{{Ef{Ol}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{{d{Ol}}{d{Ol}}}Cf}{{d{d{ClGl}}}{{Ef{A`H`}}}}{cc{}}{OnOl}1{{{Cn{On}}}{{Cn{Ol}}}}{d}`{OlEd}{OlM`}{{}c{}}0{dFd}033{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{OlA@`}{{A@b{d{ClHf}}}A`}{{{d{Ol}}c}EfHb}{dc{}}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0{{}c{}}0`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{{{d{Cl{Cn{c}}}}}A`{}}0{d{{d{c}}}{}}0{{{d{Cl}}}{{d{Clc}}}{}}0{c{{Ef{A@d}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{d{d{ClGl}}}{{Ef{A`H`}}}}{cc{}}0{A@dM`}{{}c{}}0{dFd}0`{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{{A@f{d{ClHf}}}A`}{{{d{A@d}}c}EfHb}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0{{}c{}}0`{A@hd}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}?4=<4{{}A@h}<9876```{{{d{ClGf}}}A`}````555444333222{{{d{A@j}}}A@j}{{{d{A@l}}}A@l}{{d{d{Clc}}}A`{}}0{{dDf}A`}0{c{{Ef{A@j}}}Eh}{c{{Ef{A@l}}}Eh}{A@lb}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{A@j}}{d{ClEj}}}El}{{{d{A@l}}{d{ClEj}}}El}{cc{}}00`{d}0{{{d{Hh}}{d{Dn}}}{{Ef{A`Hj}}}}{{}c{}}00{A@jEd}{dFd}00:{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{A@n{d{ClHf}}}A`}{A@lEd}{{{d{A@j}}c}EfHb}{{{d{A@l}}c}EfHb}2{dc{}}0{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}{{{d{AA`}}}{{d{Dn}}}}{AA`d}{{}c{}}{dFd}{{}AA`}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}`4>=<5454;``:::999888777{{{d{AAb}}}AAb}{{{d{AAd}}}AAd}{{d{d{Clc}}}A`{}}0{{dDf}A`}0{c{{Ef{AAb}}}Eh}{c{{Ef{AAd}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{AAb}}{d{ClEj}}}El}{{{d{AAd}}{d{ClEj}}}El}{cc{}}00{d}0???{AAdEd}???{AAdAAf}>>>{{AAh{d{ClHf}}}A`}2{{{d{AAb}}c}EfHb}{{{d{AAd}}c}EfHb}4{AAdFf}{dc{}}0{AAbEd}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00`{{}c{}}006``{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{AAj}}}AAj}{{{d{AAl}}}AAl}{{d{d{Clc}}}A`{}}0{{dDf}A`}0{c{{Ef{AAj}}}Eh}{c{{Ef{AAl}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{AAj}}{d{ClEj}}}El}{{{d{AAl}}{d{ClEj}}}El}{cc{}}00{d}0{{}c{}}00{AAlEd}{dFd}00{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{AAn{d{ClHf}}}A`}3{{{d{AAj}}c}EfHb}{{{d{AAl}}c}EfHb}{dc{}}06{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{AAjCf}`{{}c{}}00{{}j}`{jIh}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{jJj}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{jMd}{cc{}}{{{d{j}}{Ff{{d{Dn}}}}}Ed}{{}c{}}{dFd}{jOf}<{jA@h}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{jAA`}{jAB`}{jABb}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}{{}c{}}```````````````{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000000000{{{d{Cl{Cn{c}}}}}A`{}}000000000{d{{d{c}}}{}}000000000{{{d{Cl}}}{{d{Clc}}}{}}000000000{{{d{ABd}}}{{Ef{ABfABh}}}}{{{d{ABj}}}{{Ef{ABlABn}}}}{{{d{AC`}}}{{Ef{ACbACd}}}}{{{d{ABf}}}ABf}{{{d{ABd}}}ABd}{{{d{ABl}}}ABl}{{{d{ABj}}}ABj}{{{d{ACb}}}ACb}{{{d{AC`}}}AC`}{{d{d{Clc}}}A`{}}00000{{dDf}A`}00000{{}ABd}{{}ABj}{{}AC`}210{c{{Ef{ABf}}}Eh}{c{{Ef{ABl}}}Eh}{c{{Ef{ACb}}}Eh}{{{d{ClAC`}}{Ff{b}}}{{d{ClAC`}}}}{ACbFf}{AC`Ff}{{d{d{ClGl}}}{{Ef{A`Gn}}}}00{{d{d{ClGl}}}{{Ef{A`H`}}}}00{{{d{ABf}}{d{ClEj}}}El}{{{d{ABh}}{d{ClEj}}}El}0{{{d{ABl}}{d{ClEj}}}El}{{{d{ABn}}{d{ClEj}}}El}0{{{d{ACb}}{d{ClEj}}}El}{{{d{ACd}}{d{ClEj}}}El}0{cc{}}0{NnABh}{EdABh}22222{EdABn}{NnABn}444{NnACd}{EdACd}{d}00000{{{d{ClABd}}{d{Dn}}}{{d{ClABd}}}}{ABfd}{ABdFf}{{}c{}}000000000{dFd}000000000{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000000000{{{d{ClABj}}ACf}{{d{ClABj}}}}{ABlACf}{ABjFf}{{{d{Hh}}{d{ABl}}}{{Ef{ACbHj}}}}`{{ACh{d{ClHf}}}A`}`{{{d{ABf}}c}EfHb}{{{d{ABl}}c}EfHb}{{{d{ACb}}c}EfHb}{{{d{ClGf}}}A`}{{{d{ClABj}}b}{{d{ClABj}}}}{ABlb}8{dc{}}00000{dEd}00{c{{Ef{e}}}{}{}}000000000{{}{{Ef{c}}}{}}000000000{d{{Ef{EdOd}}}}00{dG`}000000000{dCf}00000000{{{d{ClABd}}{d{Dn}}}{{d{ClABd}}}}{ABfd}{ABdFf}{{}c{}}000000000`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{{{d{AB`}}}AB`}{{d{d{Clc}}}A`{}}{{dDf}A`}{c{{Ef{AB`}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{{d{AB`}}{d{AB`}}}Cf}{{d{d{c}}}Cf{}}00{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{AB`}}{d{ClEj}}}El}{cc{}}{d}{{}c{}}{dFd}{{}AB`}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{AB`d}{{{d{AB`}}c}EfHb}{dc{}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}{{}c{}}``{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{{d{Cl{Cn{c}}}}}A`{}}000{ACjEd}{d{{d{c}}}{}}000{{{d{Cl}}}{{d{Clc}}}{}}000{{{d{ACl}}}ACl}{{d{d{Clc}}}A`{}}{{dDf}A`}{c{{Ef{ACl}}}Eh}{c{{Ef{ACj}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}0`{{{d{ACl}}{d{ACl}}}Cf}{{d{d{c}}}Cf{}}00{{d{d{ClGl}}}{{Ef{A`H`}}}}0{{{d{ACl}}{d{ClEj}}}El}{cc{}}000{d}{{}c{}}000{dFd}000{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{AClFd}{{ACn{d{ClHf}}}A`}{{AD`{d{ClHf}}}A`}``{ACjEd}{{{d{ACl}}c}EfHb}{{{d{ACj}}c}EfHb}{{{d{ClGf}}}A`}{dc{}}{c{{Ef{e}}}{}{}}000{{}{{Ef{c}}}{}}000{dG`}000{{}c{}}000`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{ABbd}{cc{}}{{{d{ABb}}{d{Dn}}Fd}Ed}{{}c{}}{dFd}{{}ABb}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}6>=<;`````{{{d{Db}}ADb}{{Ef{A`Hj}}}};:98{D`Db}{D`Dh}{D`Dl}``9{{}Dh}{{{d{Cd}}}{{Ff{{ADf{ADd}}}}}}{{{d{Db}}Ed}{{ADj{{Ff{ADh}}}}}}:9{D`Ff}{{{d{Cd}}}Db}{{{d{Cd}}Fn}{{ADl{D`}}}}{{{d{Cd}}{ADn{c}}{ADn{e}}}{{AE`{ec}}}AEbAEd};{{{d{D`}}}{{Ef{A`Hj}}}}{{{d{Db}}AEf}{{Ef{A`Hj}}}}{{{d{Db}}AEh}{{Ef{A`Hj}}}}{D`Cd};{D`Fn}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}7{{{d{Db}}AEj}{{ADj{Cf}}}}{{{d{Db}}AElEd}{{ADj{{E`{Edb}}}}}}{{}c{}}{{}A@`}`000{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{{{d{AEn}}}AEn}{{d{d{Clc}}}A`{}}{{dDf}A`}{{{d{AEn}}}Ed}{{{d{AEn}}{d{ClEj}}}El}{{{d{AF`}}}Ed}{cc{}}{d}{{}c{}}{dFd}{A@`AEn}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}8{AEnAF`}{dc{}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}{{}c{}}```{{{Ff{Cd}}}{{Dl{AFb}}}}0{{}d}0`{AFdA`}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{{{d{Hh}}}{{Ef{A`Hj}}}}{cc{}}{{}c{}}{dFd}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}4{{Hhb{AFf{A`}}}{{Ef{{AFh{A`}}Hj}}}}{{Hhb}{{Ef{{E`{AFd{AFh{A`}}}}Hj}}}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{AFdAFj}{dG`}{{}c{}}`{{}f}{{}d}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{{d{Cl{Cn{c}}}}}A`{}}000{d{{d{c}}}{}}000{{{d{Cl}}}{{d{Clc}}}{}}000`{cc{}}000{{{d{Dn}}}{{Ff{AFl}}}}0{{{d{Dn}}}AFn}`{{}c{}}000{{}{{`{{AGd{}{{AG`{{AGb{Dn}}}}}}}}}}{{}AGf}{dFd}000{{}AGh}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{AGj{d{ClHf}}}A`}{{AGl{d{ClHf}}}A`}{{AGn{d{ClHf}}}A`}`{{{d{ClGf}}}A`}`{c{{Ef{e}}}{}{}}000{{}{{Ef{c}}}{}}000{dG`}000{{}c{}}000`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{fd}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}3{{}c{}}{dFd}{{}f}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}7=<;:`{AH`A`}:976{{{d{Cl{AFf{A`}}}}}Cf}6542{{Hhb{AFf{A`}}}{{Ef{{AFh{A`}}Hj}}}}{{Hhb}{{Ef{{E`{AH`{AFh{A`}}}}Hj}}}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{AH`AFj}{dG`}{{{d{Hh}}{d{Cl{AFf{A`}}}}}{{Ef{A`Hj}}}}{{}c{}}``{{}d}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{{{d{AHb}}}AHb}{{d{d{Clc}}}A`{}}{{dDf}A`}{cc{}}{d}{{}c{}}{dFd}{{{d{Dn}}}AHb}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{AHbAHd}{{AHb{d{ClAHf}}}{{Ef{A`AHh}}}}{dc{}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}{{{d{D`}}{d{Dn}}{d{Dn}}}{{Ef{A`Hj}}}}{AHbd}{{}c{}}``````````````````````````````````{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000{{{d{Cl{Cn{c}}}}}A`{}}0000{d{{d{c}}}{}}0000{{{d{Cl}}}{{d{Clc}}}{}}0000{c{{Ef{AHj}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{{d{AHl}}{d{AHl}}}Cf}{{{d{AHn}}{d{AHn}}}Cf}{{{d{Hj}}{d{Hj}}}Cf}{{{d{AI`}}{d{AI`}}}Cf}{{d{d{ClGl}}}{{Ef{A`H`}}}}{AHjEd}{{{d{Hj}}}AFn}{{{d{AI`}}}AFn}{{{d{AHl}}{d{ClEj}}}El}0{{{d{AHn}}{d{ClEj}}}El}0{{{d{Hj}}{d{ClEj}}}El}0{{{d{AI`}}{d{ClEj}}}El}0{cc{}}0{AIbHj}{AIdHj}{AIfHj}{AIhHj}{AIjHj}{AIlHj}{AInHj}{AJ`Hj}888{HjAI`}{AIdAI`}{{}c{}}0000{dFd}0000{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000{{{d{AHj}}c}EfHb}{{{d{AHl}}}{{Ff{{d{AJb}}}}}}{{{d{AHn}}}{{Ff{{d{AJb}}}}}}{{{d{Hj}}}{{Ff{{d{AJb}}}}}}{{{d{AI`}}}{{Ff{{d{AJb}}}}}}{{{d{Hj}}}AJd}{{{d{AI`}}}AJd}{dEd}000{c{{Ef{e}}}{}{}}0000{{}{{Ef{c}}}{}}0000{d{{Ef{EdOd}}}}000{dG`}0000{dCf}00000000000{{}c{}}0000{{}d}``{{}{{Gd{h}}}}``{{{d{ClGf}}}A`}````0```2{AJfA`}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{AJh}}}AJh}{{d{d{Clc}}}A`{}}{{dDf}A`}{{}AJh}{{{d{AJf}}}{{d{Ed}}}}{cc{}}00{d}{{}c{}}00{dFd}00`{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{AJj{d{ClHf}}}A`}{AJhAHd}{{AJh{d{ClAHf}}}{{Ef{A`AHh}}}}{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00``{{}d}{AJlA`}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{AJn}}}AJn}{{d{d{Clc}}}A`{}}{{dDf}A`}{{}AJn}{{{d{AJl}}}{{d{Ed}}}}{cc{}}00{d}{{}c{}}00`{dFd}00{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{AK`{d{ClHf}}}A`}{AJnAHd}{{AJn{d{ClAHf}}}{{Ef{A`AHh}}}}{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}{{{d{AKb}}{Ff{{d{Dn}}}}}Ed}{{}{{AKd{{d{Dn}}}}}}{{}c{}}{AKbd}{dFd}1{{}AKb}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}?>=<{{}d}`<;:9{{{d{{AKf{ce}}}}}{{AKf{ce}}}{AKhAKjAKl}{AKhAKjAKl}}{{d{d{Clc}}}A`{}}{{dDf}A`}{AKfFf}<{d}:8{{{d{Dn}}{Ff{{Cn{{E`{ce}}}}}}}{{AKf{ce}}}{AKhAKj}{AKhAKj}}7{{{AKf{ce}}}AHd{AKhAKj}{AKhAKj}}{{{AKf{ce}}{d{ClAHf}}}{{Ef{A`AHh}}}{AKhAKj}{AKhAKj}}{dc{}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}{AKfd}{{}c{}}>``>`{AKnA`}{AL`A`}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{{d{Cl{Cn{c}}}}}A`{}}000{d{{d{c}}}{}}000{{{d{Cl}}}{{d{Clc}}}{}}000{{{d{ALb}}}ALb}{{d{d{Clc}}}A`{}}{{dDf}A`}{{{d{AKn}}}{{d{Ed}}}}{{{d{AL`}}}{{d{Ed}}}}`{cc{}}000{d}{{}c{}}000{dFd}000{ALbd}{{{d{Dn}}{d{Dn}}}ALb}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{ALd{d{ClHf}}}A`}{ALbAHd}{{ALb{d{ClAHf}}}{{Ef{A`AHh}}}}`{{{d{ClGf}}}A`}6{dc{}}{c{{Ef{e}}}{}{}}000{{}{{Ef{c}}}{}}000{dG`}000{{}c{}}000`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}{ALfd}{{}c{}}{dFd}{{}ALf}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}=<;4:`{{}d}::998877{{{d{ALh}}}ALh}{{d{d{Clc}}}A`{}}{{dDf}A`}99{d}8877{{{Cn{ALj}}}ALh}`66`{{ALl{d{ClHf}}}A`}{ALhAHd}{{ALh{d{ClAHf}}}{{Ef{A`AHh}}}}`{{{d{ClGf}}}A`}``{ALhCn}{dc{}}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0`{{}c{}}0``?{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{OnALn}{cc{}}00{ALnEd}{ALnM`}{{}c{}}00{dFd}003{AM`Cn}4{{{Cn{ALn}}}AM`}`{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{ALn}}}Ed}{ALnAF`}{{AMb{d{ClHf}}}A`}{AM`AHd}{{AM`{d{ClAHf}}}{{Ef{A`AHh}}}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}{{}{{AKd{{d{Dn}}}}}}{AMdd}{{}c{}}{dFd}{{}AMd}3{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{AMdAMf}{AMdAMh}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}{AMdAMj}{{}c{}}`{{}d}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{{d{Cl{Cn{c}}}}}A`{}}000{d{{d{c}}}{}}000{{{d{Cl}}}{{d{Clc}}}{}}000{{{d{AMl}}}AMl}{{d{d{Clc}}}A`{}}{{dDf}A`}`{AMlFf}{cc{}}000{d}{{}c{}}000{dFd}000{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}000{{AMn{d{ClHf}}}A`}{{AN`{d{ClHf}}}A`}{{ANb{d{ClHf}}}A`}{AMlAHd}{{AMl{d{ClAHf}}}{{Ef{A`AHh}}}}`{AMlEd}{{{d{ClGf}}}A`}`{dc{}}{c{{Ef{e}}}{}{}}000{{}{{Ef{c}}}{}}000{dG`}000`{AMld}{{}c{}}000`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{AMfd}{cc{}}{{}{{AKd{{d{Dn}}}}}}2{{}c{}}{dFd}{{}AMf}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}?>=6;`````{{{d{ClGf}}}A`}`````{{}d}{ANdA`}{ANfA`}`>>>>>>======{ANhFf}======<<<<<<0{{{d{ANj}}}ANj}{{{d{ANh}}}ANh}{{d{d{Clc}}}A`{}}0{{dDf}A`}0{{}ANj}{{}ANh}{{{d{ANd}}}{{d{Ed}}}}{{{d{ANf}}}{{d{Ed}}}}`{ANjd}{ANhd}{ANjFd}21{cc{}}00000{d}0{{}c{}}00000{dFd}000004{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00000{ANhFf}{{ANl{d{ClHf}}}A`}{{ANn{d{ClHf}}}A`}{ANjAHd}{ANhAHd}{{ANj{d{ClAHf}}}{{Ef{A`AHh}}}}{{ANh{d{ClAHf}}}{{Ef{A`AHh}}}}{dc{}}0{c{{Ef{e}}}{}{}}00000{{}{{Ef{c}}}{}}00000{dG`}00000{{}c{}}00000{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}`{cc{}}{{}c{}}{dFd}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{AO`{d{ClHf}}}A`}<;:9``{{}d}`9999888877776666{{{d{AOb}}}AOb}{{{d{AOd}}}AOd}{{d{d{Clc}}}A`{}}0{{dDf}A`}0{AObb}`{AOdd};;;;{d}0;;;;{AObEd}{AOdEd}<<<<{AObCn}2{{ALj{Cn{Lb}}EdCf}AOb}{{EdKl}AOd}>>>>{AOdKl}{AObCf}{{AOf{d{ClHf}}}A`}{{AOh{d{ClHf}}}A`}{AObAHd}{AOdAHd}{{AOb{d{ClAHf}}}{{Ef{A`AHh}}}}{{AOd{d{ClAHf}}}{{Ef{A`AHh}}}}{dc{}}0{c{{Ef{e}}}{}{}}000{{}{{Ef{c}}}{}}000{dG`}000{{}c{}}000`{{}d}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{{{d{Cl{Cn{c}}}}}A`{}}0{d{{d{c}}}{}}0{{{d{Cl}}}{{d{Clc}}}{}}0{{{d{AOj}}}AOj}{{d{d{Clc}}}A`{}}{{dDf}A`}{cc{}}0{d}{{}c{}}0{dFd}0`{{{Cn{ALj}}}AOj}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{{AOl{d{ClHf}}}A`}{AOjAHd}{{AOj{d{ClAHf}}}{{Ef{A`AHh}}}}{AOjCn}{dc{}}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0{{}c{}}0`{AMhd}0{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}444{cc{}}{{{d{AMh}}{d{Dn}}}Ed}00{{}{{AKd{{d{Dn}}}}}}1{{}c{}}{dFd}9{{}AMh}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}?>=;<`{{}d};;::9988{{{d{AOn}}}AOn}{{d{d{Clc}}}A`{}}{{dDf}A`}{AOnb};;{d}99{AOnEd}99{AOnCn}1{{B@`ALj{Cn{Lb}}EdCf}AOn}99{AOnCf}{{B@b{d{ClHf}}}A`}{AOnAHd}{{AOn{d{ClAHf}}}{{Ef{A`AHh}}}}{AOnB@`}{dc{}}{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0`{{}c{}}0{{}d}`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{B@d}}}B@d}{{d{d{Clc}}}A`{}}{{dDf}A`}{B@dFf}{cc{}}00{d}`{{}c{}}00{dFd}00{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}005`{{B@f{d{ClHf}}}A`}{{B@h{d{ClHf}}}A`}{B@dAHd}{{B@d{d{ClAHf}}}{{Ef{A`AHh}}}}`{{{d{ClGf}}}A`}:{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}{{}{{AKd{{d{Dn}}}}}}{{}c{}}{dFd}{{}AMj}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{AMjd}>=<;{{}h}`{hd}<;{hAKb};:1{hALf}:{{{d{h}}{Ff{{d{Dn}}}}}Ed}:39846{hAMd}4444{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}{{}c{}}``{B@jA`}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{B@l}}}B@l}{{d{d{Clc}}}A`{}}{{dDf}A`}{{}B@l}{{{d{B@j}}}{{d{Ed}}}}{B@ld}{cc{}}00{d}{{}c{}}00{dFd}00{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{B@n{d{ClHf}}}A`}{B@lAHd}{{B@l{d{ClAHf}}}{{Ef{A`AHh}}}}`{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{B@lAKd}{{}c{}}00{{{d{ClGf}}}A`}``{{}AKd}``0```````{CdCf}0{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000000{{{d{Cl{Cn{c}}}}}A`{}}0000000{L`b}{L`Ff}{d{{d{c}}}{}}0000000{{{d{Cl}}}{{d{Clc}}}{}}000000032{CdDd}{{{d{Cd}}}A`}0{{{d{Fl}}}Fl}{{{d{Dd}}}Dd}{{{d{L`}}}L`}{{{d{BA`}}}BA`}{{{d{BAb}}}BAb}{{{d{Dj}}}Dj}{{{d{BAd}}}BAd}{{{d{BAf}}}BAf}{{d{d{Clc}}}A`{}}0000000{{dDf}A`}0000000{CdCf}{FlEd}{CdDj}{DjBAb}3{DdL`}{c{{Ef{Fl}}}Eh}{c{{Ef{Dd}}}Eh}{c{{Ef{L`}}}Eh}{c{{Ef{BA`}}}Eh}{c{{Ef{BAb}}}Eh}{c{{Ef{Dj}}}Eh}{c{{Ef{BAd}}}Eh}{c{{Ef{BAf}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}<{L`b}{DdCf}{{{BAj{BAh}}}{{BAj{BAh}}}}{{{d{Fl}}{d{Fl}}}Cf}{{{d{Dd}}{d{Dd}}}Cf}{{{d{L`}}{d{L`}}}Cf}{{{d{BA`}}{d{BA`}}}Cf}{{{d{BAb}}{d{BAb}}}Cf}{{{d{Dj}}{d{Dj}}}Cf}{{{d{BAd}}{d{BAd}}}Cf}{{{d{BAf}}{d{BAf}}}Cf}{{d{d{c}}}Cf{}}00000000000000000000000{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{Fl}}{d{ClEj}}}El}{{{d{Dd}}{d{ClEj}}}El}{{{d{L`}}{d{ClEj}}}El}{{{d{BA`}}{d{ClEj}}}El}{{{d{BAb}}{d{ClEj}}}El}0{{{d{Dj}}{d{ClEj}}}El}{{{d{BAd}}{d{ClEj}}}El}{{{d{BAf}}{d{ClEj}}}El}{cc{}}0000000{BA`Ed}{{{d{BAl}}}{{Ef{BAbBAn}}}}{DdAAf}{{{d{Fl}}}Ed}{d}0000000{BAfBAl}{{}c{}}0000000{FlEd}{dFd}0000000{{}{{Ef{CdBAn}}}}{BAfCn}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0000000;{L`b}{L`Ff}{Djb}{BAdb}{Flb}{BA`BB`}{FlCf}{DdFd}{BAfAAf}{CdFf}{BA`Ed}{DdFf}{DdEd}{{{d{BAb}}c}EfHb}{CdFl}{{{d{ClCd}}}A`}6{CdEd}7{dc{}}0000000{dEd}{c{{Ef{e}}}{}{}}0000000{{}{{Ef{c}}}{}}0000000{d{{Ef{EdOd}}}}{dG`}0000000<{DjEd}{BAdEd}{FlFf}?{dCf}00{{}c{}}0000000``{{{d{ClGf}}}A`}``{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{EbBBb}{cc{}}{{{d{Eb}}{d{Dn}}}{{Ff{{d{Dn}}}}}}{{}c{}}{dFd}{{}Eb}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{c{{Ef{e}}}{}{}}{{}{{Ef{c}}}{}}{dG`}?``====<<<<`;;;;::::`8888{{{d{Dn}}}{{Ff{AFl}}}}000{{{d{Dn}}}AFn}08888{{}AGf}{{}{{`{{AGd{}{{AG`{{AGb{Dn}}}}}}}}}}109999{{}AGh}08888{{BBd{d{ClHf}}}A`}{{BBf{d{ClHf}}}A`}`999988887777{{}c{}}000```````````{nA`}{AbA`}{AdA`}{AfA`}{AhA`}{AjA`}{AlA`}{AnA`}{B`A`}{BbA`}`````{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{B@`}}}B@`}{{{d{BBh}}}BBh}{{{d{BBj}}}BBj}{{d{d{Clc}}}A`{}}00{{{d{BBl}}}{{Dl{BBn}}}}{d{{Dl{BBn}}}}0{{dDf}A`}00{B@`Cn}0{{}B@`}{{}BBh}{{}BBj}{c{{Ef{B@`}}}Eh}{{d{d{ClGl}}}{{Ef{A`Gn}}}}{{{d{B@`}}{d{B@`}}}Cf}{{{d{BBh}}{d{BBh}}}Cf}{{{d{BBj}}{d{BBj}}}Cf}{{d{d{ClGl}}}{{Ef{A`H`}}}}{{{d{BBn}}{d{D`}}{d{Dn}}{d{Dn}}}{{BCb{{Dl{BC`}}}}}}{{{d{BBh}}{d{D`}}{d{Dn}}{d{Dn}}}{{BCb{{Dl{BC`}}}}}}{{{d{BBj}}{d{D`}}{d{Dn}}{d{Dn}}}{{BCb{{Dl{BC`}}}}}}{{{d{B@`}}{d{ClEj}}}El}{{{d{BBh}}{d{ClEj}}}El}{{{d{BBj}}{d{ClEj}}}El}{cc{}}00{d}00{{}c{}}00{dFd}00{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{BBn}}{d{D`}}{d{Dn}}}{{BCb{{Dl{BC`}}}}}}{{{d{BBh}}{d{D`}}{d{Dn}}}{{BCb{{Dl{BC`}}}}}}{{{d{BBj}}{d{D`}}{d{Dn}}}{{BCb{{Dl{BC`}}}}}}210210{{{d{B@`}}c}EfHb}{B@`Cn}{dc{}}00{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00```{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}0{BCdHh}{{{d{Cl{Cn{c}}}}}A`{}}0{d{{d{c}}}{}}0{{{d{Cl}}}{{d{Clc}}}{}}0{BCdBCf}{{{d{Fn}}}Fn}{{{d{BCd}}}BCd}{{d{d{Clc}}}A`{}}0{{dDf}A`}0{{}Fn}{{{d{Fn}}{d{ClEj}}}El}{cc{}}0{{{d{Fn}}{d{Dn}}}{{Ff{Ed}}}}{d}0{{}c{}}0{{{d{BCh}}}{{BCb{{Dl{BC`}}}}}}{{{d{BCd}}}{{BCb{{Dl{BC`}}}}}}{dFd}0{HhBCd}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}043{{{d{Fn}}{d{Dn}}}A`}54{{{d{Fn}}EdEd}A`}65{FnADl}{dc{}}0{c{{Ef{e}}}{}{}}0{{}{{Ef{c}}}{}}0{dG`}0{{}c{}}0``{{}d}{{}l}{BCjA`}{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{{d{Cl{Cn{c}}}}}A`{}}00{d{{d{c}}}{}}00{{{d{Cl}}}{{d{Clc}}}{}}00{{{d{BCl}}}BCl}{{d{d{Clc}}}A`{}}{{dDf}A`}{{{d{BCj}}}{{d{Ed}}}}{cc{}}00{d}{{}c{}}00{dFd}00{{}BCl}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}00{{BCn{d{ClHf}}}A`}{BClAHd}{{BCl{d{ClAHf}}}{{Ef{A`AHh}}}}`{{{d{ClGf}}}A`}`{dc{}}{c{{Ef{e}}}{}{}}00{{}{{Ef{c}}}{}}00{dG`}00{{}c{}}00`{g{{Ch{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}{{{d{Cl{Cn{c}}}}}A`{}}{d{{d{c}}}{}}{{{d{Cl}}}{{d{Clc}}}{}}{cc{}}{{}c{}}{dFd}{{}l}{g{{Fj{ig}}}{}{}{{Cj{ce}}}{{Cj{ce}}}}<;:{ld}:","D":"DAd","p":[[1,"u32"],[1,"reference",null,null,1],[5,"Docs",2322],[5,"Routes",3362],[5,"Routes",1781],[5,"Widget",4002],[5,"KEY",3797,3786],[1,"unit"],[5,"GITHUB",3797,3786],[5,"HOME",3797,3786],[5,"SETTINGS_ICON",3797,3786],[5,"CREDIT_CARD",3797,3786],[5,"HELP_CIRCLE",3797,3786],[5,"MESSAGE",3797,3786],[5,"DOCS_ICON",3797,3786],[5,"MCAPTCHA_TRANS_ICON",3797,3786],[5,"BAR_CHART",3797,3786],[5,"SETTINGS",3797],[5,"FILES",3797],[5,"JS",3797],[5,"CSS",3797],[5,"MOBILE_CSS",3797],[5,"VERIFICATIN_WIDGET_JS",3797],[5,"VERIFICATIN_WIDGET_CSS",3797],[5,"SOURCE_FILES_OF_INSTANCE",3797],[5,"Settings",3797,3649],[1,"bool"],[5,"And",4017],[10,"Policy",4018],[0,"mut"],[5,"Vec",4019],[5,"Data",3797,2200],[6,"SystemGroup",2200],[5,"Captcha",3649],[1,"u8"],[5,"Config",4020],[5,"Database",3649],[5,"Box",4021,null,1],[1,"str"],[1,"tuple",null,null,1],[5,"FileMap",3703],[5,"String",4022],[6,"Result",4023,null,1],[10,"Deserializer",4024],[5,"Formatter",4025],[8,"Result",4025],[5,"CookieIdentityPolicy",4026],[5,"IdentityService",4027],[5,"JsonConfig",4028],[1,"usize"],[6,"Option",4029,null,1],[8,"Result",4030,null,1],[5,"Or",4031],[5,"Server",3649],[5,"SecretsStore",3894],[5,"TypeId",4032],[5,"RedirectQuery",358],[5,"Authentication",4033],[5,"ServiceConfig",4034],[5,"AccountCheckPayload",385],[5,"AccountCheckResp",385],[10,"Serializer",4035],[6,"ErrorImpl",4035],[5,"Error",4036],[10,"Serializer",4037],[5,"delete_account",442],[5,"AppService",4034],[8,"AppData",3797],[6,"ServiceError",2383],[5,"Email",459],[5,"email_exists",459],[5,"set_email",459],[5,"ChangePasswordReqest",512],[5,"UpdatePassword",512],[5,"update_user_password",512],[5,"Account",570],[5,"get_secret",592],[5,"update_user_secret",592],[5,"Username",621],[5,"username_exists",621],[5,"set_username",621],[5,"register",676],[5,"login",676],[5,"signout",676],[5,"Auth",721],[5,"Register",739],[5,"Login",739],[5,"Password",739],[5,"MCaptchaDetails",826],[5,"CreateCaptcha",826],[5,"create",826],[5,"DeleteCaptcha",888],[5,"delete",888],[5,"TrafficPatternRequest",927],[5,"TrafficPattern",4038],[5,"DefaultDifficultyStrategy",3649],[5,"Level",4039],[5,"UpdateTrafficPattern",927],[5,"create",927],[5,"update",927],[5,"Easy",1014],[5,"Levels",1030],[5,"I32Levels",1030],[1,"i32"],[5,"get_captcha",1030],[5,"Captcha",1093],[5,"Stats",1153],[5,"StatsPayload",1114],[5,"get",1114],[5,"UpdateCaptcha",1168],[5,"update_key",1168],[5,"update_captcha",1168],[5,"BuildDetailsBuilder",1220],[5,"BuildDetails",1220],[6,"BuildDetailsBuilderError",1220],[5,"HealthBuilder",1220],[5,"Health",1220],[6,"HealthBuilderError",1220],[5,"UninitializedFieldError",4040],[5,"build_details",1220],[5,"health",1220],[5,"TryReserveError",4041],[5,"Meta",1399],[5,"AddNotificationRequest",1420],[5,"add_notification",1420],[5,"NotificationResp",1462],[5,"Notification",4038],[1,"i64"],[5,"get_notification",1462],[5,"MarkReadReq",1507],[5,"mark_read",1507],[5,"Notifications",1539],[5,"GetConfigPayload",1562],[5,"ApiPoWConfig",1562],[5,"get_config",1562],[5,"PoW",1628],[5,"ValidationToken",1650],[5,"ApiWork",1650],[1,"u64"],[5,"verify_pow",1650],[5,"CaptchaValidateResp",1717],[5,"VerifyCaptchaResultPayload",1717],[5,"validate_captcha_token",1717],[5,"Stats",2041],[5,"Survey",2147],[5,"BuildDetailsBuilder",1805],[5,"BuildDetails",1805],[6,"BuildDetailsBuilderError",1805],[5,"PercentileReqBuilder",1805],[5,"PercentileReq",1805],[6,"PercentileReqBuilderError",1805],[5,"PercentileRespBuilder",1805],[5,"PercentileResp",1805],[6,"PercentileRespBuilderError",1805],[1,"f64"],[5,"percentile_benches",1805],[5,"SurveySecretUpload",2070],[5,"Page",2070],[5,"download",2070],[5,"secret",2070],[5,"AddSite",4042],[5,"Tokio1Executor",4043],[5,"AsyncSmtpTransport",4044],[5,"PoWConfig",4045],[8,"CaptchaResult",4046],[5,"Arc",4047,null,1],[5,"Addr",4048],[5,"System",4049],[10,"Master",4050],[10,"Save",4051],[5,"RemoveCaptcha",4042],[5,"Rename",4042],[5,"VerifyCaptchaResult",4052],[5,"Work",4045],[5,"Date",2203],[5,"OffsetDateTime",4053],[10,"MCDatabase",4038],[5,"DemoUser",2236],[5,"Receiver",4054],[5,"JoinHandle",4055],[5,"Sender",4054],[5,"EmbeddedFile",4056],[5,"HttpResponse",4057],[17,"Item"],[6,"Cow",4058],[10,"Iterator",4059],[6,"Filenames",4060],[5,"PathMatcher",4056],[5,"dist",2257],[5,"spec",2257],[5,"index",2257],[5,"UpdateEasyCaptcha",2339],[5,"IndexPage",2359],[8,"RenderResult",4061],[5,"Buffer",4062],[6,"RenderError",4061],[5,"ErrorToResponse",2383],[5,"SmtpErrorWrapper",2383],[5,"DBErrorWrapper",2383],[6,"PageError",2383],[6,"MailboxError",4048],[6,"DBError",4063],[5,"ValidationErrors",4064],[6,"ParseError",4065],[6,"CaptchaError",4046],[6,"CredsError",4066],[5,"Error",4067],[5,"RecvError",4068],[10,"Error",4069],[5,"StatusCode",4070],[5,"INDEX",2545],[5,"IndexPage",2545],[5,"login",2545],[5,"INDEX",2596],[5,"IndexPage",2596],[5,"join",2596],[5,"Auth",2647],[1,"array"],[5,"SudoPage",2665],[10,"Display",4025],[10,"Render",4061],[10,"Clone",4071],[5,"INTERNAL_SERVER_ERROR_BODY",2689],[5,"UNKNOWN_ERROR_BODY",2689],[5,"ErrorPage",2689],[5,"error",2689],[5,"Errors",2760],[5,"IndexPage",2776],[5,"Captcha",4038],[5,"panel",2776],[5,"Notification",2819],[5,"IndexPage",2819],[5,"notifications",2819],[5,"Panel",2871],[5,"Settings",2959],[5,"Sitekey",3224],[5,"Utils",3346],[5,"IndexPage",2891],[5,"settings",2891],[5,"delete_account",2891],[5,"update_secret",2891],[5,"ADVANCE_INDEX",2984],[5,"EASY_INDEX",2984],[5,"EasyIndexPage",2984],[5,"AdvanceIndexPage",2984],[5,"advance",2984],[5,"easy",2984],[5,"delete_sitekey",3094],[5,"AdvanceEditPage",3108],[5,"EasyEditPage",3108],[5,"advance",3108],[5,"easy",3108],[5,"IndexPage",3187],[5,"list_sitekeys",3187],[5,"IndexPage",3250],[5,"CaptchaStats",3807],[5,"view_sitekey",3250],[5,"PercentilePage",3292],[5,"get_percentile",3292],[5,"post_percentile",3292],[5,"INDEX",3389],[5,"IndexPage",3389],[5,"sitemap",3389],[5,"Smtp",3649],[6,"DBType",3649],[5,"Redis",3649],[5,"Survey",3649],[5,"DefaultState",4072],[5,"ConfigBuilder",4072],[5,"Url",4073],[6,"ConfigError",4074],[1,"u16"],[5,"Files",4075],[5,"static_files",3719],[5,"favicons",3719],[5,"Real",3807],[5,"Dummy",3807],[10,"CloneStats",3807],[10,"Stats",3807],[10,"Future",4076,null,1],[5,"Pin",4077],[5,"Survey",3894],[5,"Client",4078],[10,"SurveyClientTrait",3894],[5,"INDEX_PAGE",3948],[5,"IndexPage",3948],[5,"show_widget",3948],[5,"Asset",2257],[8,"ServiceResult",2383],[8,"PageResult",2383],[5,"Asset",3719],[5,"Favicons",3719]],"r":[[2,3786],[5,3786],[7,2257],[8,3786],[9,2200],[11,3786],[13,3786],[14,3786],[16,3786],[17,3786],[18,3786],[25,3786],[27,3649],[32,3948],[33,3786],[34,3786],[35,3786],[36,3786],[37,3786],[38,3786],[39,3786],[40,3786],[41,3786],[42,3786],[51,3649],[52,3649],[53,2200],[54,3649],[55,3786],[56,3786],[57,3786],[58,3786],[59,3786],[60,3786],[61,3786],[62,3786],[63,3786],[64,3786],[74,2200],[75,3649],[76,3786],[77,3786],[78,3786],[79,3786],[80,3786],[81,3786],[82,3786],[83,3786],[84,3786],[85,3786],[94,2200],[95,3649],[96,3786],[97,3786],[98,3786],[99,3786],[100,3786],[101,3786],[102,3786],[103,3786],[104,3786],[105,3786],[114,2200],[115,3649],[116,3786],[117,3786],[118,3786],[119,3786],[120,3786],[121,3786],[122,3786],[123,3786],[124,3786],[125,3786],[134,2200],[135,3649],[136,3649],[137,3649],[138,3649],[139,3649],[140,2200],[142,3649],[145,2200],[146,3649],[148,3786],[149,3786],[150,3786],[151,3786],[152,3786],[153,3786],[154,3786],[155,3786],[156,3786],[157,3786],[166,3649],[170,3649],[171,3649],[172,3649],[173,3649],[175,3649],[176,2200],[177,3649],[178,3786],[179,3786],[180,3786],[181,3786],[182,3786],[183,3786],[184,3786],[185,3786],[186,3786],[187,3786],[197,3649],[199,2200],[200,3649],[201,3786],[202,3786],[203,3786],[204,3786],[205,3786],[206,3786],[207,3786],[208,3786],[209,3786],[210,3786],[219,2200],[220,3649],[221,3786],[222,3786],[223,3786],[224,3786],[225,3786],[226,3786],[227,3786],[228,3786],[229,3786],[230,3786],[239,2200],[241,2200],[242,3649],[243,3786],[244,3786],[245,3786],[246,3786],[247,3786],[248,3786],[249,3786],[250,3786],[251,3786],[252,3786],[262,3649],[264,3649],[266,2200],[267,3649],[268,3649],[271,2200],[273,3649],[274,2200],[275,3649],[276,2200],[277,3649],[278,3786],[279,3786],[280,3786],[281,3786],[282,3786],[283,3786],[284,3786],[285,3786],[286,3786],[287,3786],[296,2200],[297,3649],[298,3786],[299,3786],[300,3786],[301,3786],[302,3786],[303,3786],[304,3786],[305,3786],[306,3786],[307,3786],[316,2200],[317,3649],[318,3786],[319,3786],[320,3786],[321,3786],[322,3786],[323,3786],[324,3786],[325,3786],[326,3786],[327,3786],[336,2200],[337,3649],[338,3786],[339,3786],[340,3786],[341,3786],[342,3786],[343,3786],[344,3786],[345,3786],[346,3786],[347,3786],[358,1781],[391,358],[421,358],[1556,1030],[2174,2200],[2175,2200],[2176,2200],[2180,2200],[2181,2200],[2185,2200],[2187,2200],[2190,2200],[2193,2200],[2194,2200],[2195,2200],[2199,2200],[3455,3649],[3456,3649],[3493,3649],[3494,3649],[3495,3649],[3520,3649],[3522,3649],[3524,3649],[3538,3649],[3619,3649],[3639,3649],[3644,3649],[3645,3649],[3646,3649],[3647,3649],[3648,3649],[3699,3703],[3797,3786],[3798,3786],[3799,3786],[3800,3786],[3801,3786],[3802,3786],[3803,3786],[3804,3786],[3805,3786],[3806,3786]],"b":[[1291,"impl-Debug-for-BuildDetailsBuilderError"],[1292,"impl-Display-for-BuildDetailsBuilderError"],[1294,"impl-Display-for-HealthBuilderError"],[1295,"impl-Debug-for-HealthBuilderError"],[1298,"impl-From%3CString%3E-for-BuildDetailsBuilderError"],[1300,"impl-From%3CUninitializedFieldError%3E-for-BuildDetailsBuilderError"],[1305,"impl-From%3CUninitializedFieldError%3E-for-HealthBuilderError"],[1306,"impl-From%3CString%3E-for-HealthBuilderError"],[1900,"impl-Debug-for-BuildDetailsBuilderError"],[1901,"impl-Display-for-BuildDetailsBuilderError"],[1903,"impl-Debug-for-PercentileReqBuilderError"],[1904,"impl-Display-for-PercentileReqBuilderError"],[1906,"impl-Debug-for-PercentileRespBuilderError"],[1907,"impl-Display-for-PercentileRespBuilderError"],[1910,"impl-From%3CUninitializedFieldError%3E-for-BuildDetailsBuilderError"],[1911,"impl-From%3CString%3E-for-BuildDetailsBuilderError"],[1917,"impl-From%3CString%3E-for-PercentileReqBuilderError"],[1918,"impl-From%3CUninitializedFieldError%3E-for-PercentileReqBuilderError"],[1922,"impl-From%3CUninitializedFieldError%3E-for-PercentileRespBuilderError"],[1923,"impl-From%3CString%3E-for-PercentileRespBuilderError"],[2281,"impl-Asset"],[2282,"impl-RustEmbed-for-Asset"],[2289,"impl-Asset"],[2290,"impl-RustEmbed-for-Asset"],[2447,"impl-Debug-for-SmtpErrorWrapper"],[2448,"impl-Display-for-SmtpErrorWrapper"],[2449,"impl-Debug-for-DBErrorWrapper"],[2450,"impl-Display-for-DBErrorWrapper"],[2451,"impl-Display-for-ServiceError"],[2452,"impl-Debug-for-ServiceError"],[2453,"impl-Display-for-PageError"],[2454,"impl-Debug-for-PageError"],[2457,"impl-From%3CMailboxError%3E-for-ServiceError"],[2458,"impl-From%3CDBError%3E-for-ServiceError"],[2459,"impl-From%3CValidationErrors%3E-for-ServiceError"],[2460,"impl-From%3CParseError%3E-for-ServiceError"],[2461,"impl-From%3CCaptchaError%3E-for-ServiceError"],[2462,"impl-From%3CCredsError%3E-for-ServiceError"],[2463,"impl-From%3CError%3E-for-ServiceError"],[2464,"impl-From%3CRecvError%3E-for-ServiceError"],[2468,"impl-From%3CServiceError%3E-for-PageError"],[2469,"impl-From%3CDBError%3E-for-PageError"],[3576,"impl-Debug-for-DBType"],[3577,"impl-Display-for-DBType"],[3743,"impl-RustEmbed-for-Asset"],[3744,"impl-Asset"],[3745,"impl-Favicons"],[3746,"impl-RustEmbed-for-Favicons"],[3753,"impl-RustEmbed-for-Asset"],[3754,"impl-Asset"],[3755,"impl-RustEmbed-for-Favicons"],[3756,"impl-Favicons"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKcN2gAAAAkACwAPABwAagCIAAQAjwACAJMAHQDFAAIA3AATAPEAGQAMAQMAEQEBABQBUABmAQkAcQEAAHMBKgCgAQEApAEbAMIBHwDlAQAA6QEJAPQBIwAZAgAAHAIAACACIQBDAgAARQITAFsCAABeAiMAhQIAAIkCCgCVAhsAtwIfANgCAADaAi8ADQMCABMDAwAYAz0AWQMAAF0DLACMAwAAjwMQAKEDCACrAwcAtAMJAL8DBwDLAwEA0QMJAN0DHgD/AyQAJwQCAC0EIABPBAAAUQQZAG0EAQBxBBUAiAQAAIoEGACpBBwAzwQfAPIECwAABRAAEwUAABUFAAAaBQEAHQUGAC0FLwBfBR4AfwUAAIEFDACPBRAAogUBAKYFIQDJBQAAywUBAM4FAQDSBR0A8gUAAPUFAQD4BREACwYAAA0GCwAbBhwAPAYBAEIGHwBkBgAAZgYHAG8GAABxBgIAdQYZAJIGAQCXBhkAsgYfANUGAQDaBhcA8wYLAAAHAAACBwwAHQcnAEgHEQBdBxcAdwcBAH4HAQCDBwoAmAcXALEHJQDaBy8ACwgAAA0IIwAyCAYAPQgAAEIICwBPCBoAawgAAG0IBwB2CAAAeAgAAHoIBACCCAEAhQgCAIkIAACLCAAAjQgEAJUIEgCpCAEArAgAAK4IAgCyCAoAvwgGAMgIAQDLCBoA6wgCAPMIJQAaCQAAHAkOAC0JBwA2CQAAOAkIAEIJAABECQwAUgkAAFQJAgBaCQQAYQkEAGcJAwBvCQAAcQkmAJoJBwClCQEArAkeAM8JNwAKCgAADgorAD0KAABBChsAXgoBAGEKEgB1CgAAdwonAKMKAACoCiUAzwoAANEKFADoCgAA6wooABcLAQAcCwMAIQsbAD4LAQBBCyEAZwsAAGwLKQCXCwEAmgtAAOELAQDpCzIAHgwJACkMFgBBDAAARgwBAEwMNACDDAAAhgwBAIkMGQCkDAQAqgwWAMMMAADGDBMA2wwTAPIMAQD3DCAAGQ0AABsNEQAuDQIAMg0gAFYNAABaDaMABg4MABsOPwBcDiEAfw4AAIEOGgCgDgAAow4CAKoOAACsDgAArg4yAOIOFAD4Dg8ACw8CABEPAgAXDwUAJg8lAE4PAgBTDy4AhQ8AAIkPCgCWDxEAqg8HAA==","P":[[53,"B,E,P,T"],[74,"T"],[134,""],[137,"T"],[138,""],[166,"__D"],[170,""],[171,"K"],[175,""],[176,"T"],[196,""],[199,"U"],[219,""],[241,"B,E,P,T"],[262,""],[275,"T"],[276,"U,T"],[296,"U"],[316,""],[336,"V"],[361,"B,E,P,T"],[362,"T"],[366,"__D"],[367,"T"],[368,""],[369,"U"],[370,""],[374,"B,E,P,T"],[376,""],[381,"U,T"],[382,"U"],[383,""],[384,"V"],[387,"B,E,P,T"],[389,"T"],[396,""],[398,"T"],[400,""],[403,"__D"],[405,""],[413,"T"],[415,""],[417,"U"],[419,""],[422,"B,E,P,T"],[427,"__S"],[429,""],[430,"T"],[432,"U,T"],[434,"U"],[436,""],[440,"V"],[442,"B,E,P,T"],[443,"T"],[448,"U"],[449,""],[450,"B,E,P,T"],[451,""],[454,"U,T"],[455,"U"],[456,""],[457,"V"],[458,""],[460,"B,E,P,T"],[463,"T"],[472,""],[473,"T"],[474,""],[475,"__D"],[476,""],[481,"T"],[484,""],[485,"U"],[488,""],[491,"B,E,P,T"],[494,""],[496,"__S"],[497,""],[499,"T"],[500,"U,T"],[503,"U"],[506,""],[509,"V"],[514,"B,E,P,T"],[517,"T"],[526,""],[527,"T"],[528,""],[531,"__D"],[532,""],[535,"T"],[536,""],[537,"T"],[539,""],[540,"U"],[543,""],[548,"B,E,P,T"],[551,""],[553,"__S"],[554,""],[555,"T"],[556,"U,T"],[559,"U"],[562,""],[567,"V"],[571,"B,E,P,T"],[572,"T"],[575,""],[577,"T"],[578,""],[579,"U"],[580,""],[582,"B,E,P,T"],[583,"U,T"],[584,"U"],[585,""],[591,"V"],[592,"B,E,P,T"],[594,"T"],[603,"U"],[605,""],[607,"B,E,P,T"],[609,""],[612,"U,T"],[614,"U"],[616,""],[619,"V"],[622,"B,E,P,T"],[625,"T"],[634,""],[635,"T"],[636,""],[637,"__D"],[638,""],[641,"T"],[644,""],[645,"U"],[648,""],[651,"B,E,P,T"],[654,""],[657,"__S"],[658,""],[660,"T"],[661,"U,T"],[664,"U"],[667,""],[672,"V"],[675,""],[676,"B,E,P,T"],[679,"T"],[691,"U"],[694,""],[698,"B,E,P,T"],[702,""],[709,"U,T"],[712,"U"],[715,""],[718,"V"],[722,"B,E,P,T"],[723,"T"],[727,""],[728,"U"],[729,""],[733,"B,E,P,T"],[734,""],[735,"U,T"],[736,"U"],[737,""],[738,"V"],[742,"B,E,P,T"],[745,"T"],[754,""],[757,"T"],[760,""],[764,"__D"],[767,""],[777,"T"],[780,""],[783,"U"],[786,""],[791,"B,E,P,T"],[794,""],[798,"__S"],[801,"T"],[804,"U,T"],[807,"U"],[810,""],[814,"V"],[821,""],[828,"B,E,P,T"],[831,"T"],[840,""],[841,"T"],[842,""],[845,"__D"],[847,""],[853,"T"],[856,""],[857,"U"],[860,""],[866,"B,E,P,T"],[869,""],[872,"__S"],[874,"T"],[875,"U,T"],[878,"U"],[881,""],[884,"V"],[887,""],[889,"B,E,P,T"],[891,"T"],[897,""],[898,"T"],[899,""],[901,"__D"],[902,""],[905,"T"],[907,""],[908,"U"],[910,""],[913,"B,E,P,T"],[915,""],[917,"__S"],[918,"T"],[919,"U,T"],[921,"U"],[923,""],[925,"V"],[929,"B,E,P,T"],[933,"T"],[937,""],[938,"T"],[946,""],[951,"T"],[953,""],[958,"__D"],[960,""],[966,"T"],[970,""],[972,"U"],[976,""],[981,"B,E,P,T"],[985,""],[991,"__S"],[993,""],[994,"T"],[996,"U,T"],[1000,"U"],[1004,""],[1010,"V"],[1015,"B,E,P,T"],[1016,"T"],[1019,""],[1020,"T"],[1021,"U"],[1022,""],[1024,"B,E,P,T"],[1025,"U,T"],[1026,"U"],[1027,""],[1029,"V"],[1032,"B,E,P,T"],[1035,"T"],[1044,""],[1046,"T"],[1048,""],[1050,"__D"],[1052,""],[1059,"T"],[1063,""],[1065,"U"],[1068,""],[1072,"B,E,P,T"],[1075,""],[1076,"__S"],[1078,"T"],[1080,"U,T"],[1083,"U"],[1086,""],[1090,"V"],[1094,"B,E,P,T"],[1095,"T"],[1098,""],[1101,"T"],[1102,""],[1103,"U"],[1104,""],[1106,"B,E,P,T"],[1107,""],[1108,"U,T"],[1109,"U"],[1110,""],[1113,"V"],[1115,"B,E,P,T"],[1117,"T"],[1123,""],[1124,"T"],[1125,""],[1126,"__D"],[1127,""],[1130,"T"],[1133,""],[1134,"U"],[1136,""],[1139,"B,E,P,T"],[1141,""],[1143,"__S"],[1144,"T"],[1145,"U,T"],[1147,"U"],[1149,""],[1151,"V"],[1154,"B,E,P,T"],[1155,"T"],[1159,""],[1160,"U"],[1161,""],[1163,"B,E,P,T"],[1164,"U,T"],[1165,"U"],[1166,""],[1167,"V"],[1169,"B,E,P,T"],[1172,"T"],[1181,""],[1182,"__D"],[1183,""],[1186,"T"],[1189,"U"],[1192,""],[1197,"B,E,P,T"],[1200,""],[1204,"__S"],[1205,"U,T"],[1208,"U"],[1211,""],[1216,"V"],[1219,""],[1230,"B,E,P,T"],[1238,"T"],[1262,""],[1269,"T"],[1273,""],[1284,"__D"],[1286,""],[1296,"T"],[1298,""],[1299,"T"],[1300,""],[1301,"T"],[1305,""],[1307,"T"],[1308,""],[1316,"U"],[1324,""],[1333,"B,E,P,T"],[1341,""],[1347,"__S"],[1349,""],[1350,"T"],[1354,""],[1356,"U,T"],[1364,"U"],[1372,""],[1391,"V"],[1400,"B,E,P,T"],[1401,"T"],[1404,""],[1405,"T"],[1406,""],[1407,"U"],[1408,""],[1410,"B,E,P,T"],[1411,"U,T"],[1412,"U"],[1413,""],[1414,"V"],[1419,""],[1422,"B,E,P,T"],[1424,"T"],[1430,""],[1431,"T"],[1432,""],[1434,"__D"],[1435,""],[1439,"T"],[1441,""],[1443,"U"],[1445,""],[1448,"B,E,P,T"],[1450,""],[1451,"__S"],[1452,""],[1453,"T"],[1454,"U,T"],[1456,"U"],[1458,""],[1460,"V"],[1463,"B,E,P,T"],[1465,"T"],[1471,""],[1472,"T"],[1473,""],[1475,"__D"],[1476,""],[1479,"T"],[1480,""],[1481,"T"],[1482,""],[1487,"U"],[1489,""],[1493,"B,E,P,T"],[1495,""],[1497,"__S"],[1498,"T"],[1499,"U,T"],[1501,"U"],[1503,""],[1505,"V"],[1508,"B,E,P,T"],[1510,"T"],[1516,"__D"],[1517,""],[1519,"T"],[1521,""],[1522,"U"],[1524,""],[1527,"B,E,P,T"],[1529,""],[1530,"__S"],[1531,"U,T"],[1533,"U"],[1535,""],[1537,"V"],[1540,""],[1541,"B,E,P,T"],[1542,"T"],[1546,""],[1547,"U"],[1548,""],[1551,"B,E,P,T"],[1552,"U,T"],[1553,"U"],[1554,""],[1555,"V"],[1559,""],[1564,"B,E,P,T"],[1567,"T"],[1576,""],[1578,"T"],[1580,""],[1582,"__D"],[1584,""],[1591,"T"],[1595,""],[1598,"U"],[1601,""],[1606,"B,E,P,T"],[1609,""],[1611,"__S"],[1613,""],[1614,"T"],[1616,"U,T"],[1619,"U"],[1622,""],[1625,"V"],[1629,"B,E,P,T"],[1630,"T"],[1634,""],[1636,"U"],[1637,""],[1639,"B,E,P,T"],[1641,""],[1642,"U,T"],[1643,"U"],[1644,""],[1649,"V"],[1652,"B,E,P,T"],[1655,"T"],[1664,""],[1666,"T"],[1668,""],[1670,"__D"],[1672,""],[1678,"T"],[1681,""],[1683,"U"],[1686,""],[1691,"B,E,P,T"],[1694,""],[1696,"__S"],[1698,""],[1700,"T"],[1702,""],[1703,"U,T"],[1706,"U"],[1709,""],[1713,"V"],[1716,""],[1719,"B,E,P,T"],[1722,"T"],[1731,""],[1733,"T"],[1735,""],[1737,"__D"],[1739,""],[1745,"T"],[1748,""],[1750,"U"],[1753,""],[1757,"B,E,P,T"],[1760,""],[1762,"__S"],[1764,"T"],[1766,""],[1767,"U,T"],[1770,"U"],[1773,""],[1778,"V"],[1781,""],[1784,"B,E,P,T"],[1785,"T"],[1786,""],[1787,"T"],[1789,""],[1790,"T"],[1791,""],[1792,"U"],[1793,""],[1797,"B,E,P,T"],[1798,""],[1801,"U,T"],[1802,"U"],[1803,""],[1804,"V"],[1820,"B,E,P,T"],[1830,"T"],[1860,""],[1869,"T"],[1875,""],[1887,"__D"],[1890,""],[1908,"T"],[1910,""],[1912,"T"],[1917,""],[1919,"T"],[1922,""],[1933,"U"],[1943,""],[1953,"B,E,P,T"],[1963,""],[1970,"__S"],[1973,""],[1977,"T"],[1983,""],[1986,"U,T"],[1996,"U"],[2006,""],[2031,"V"],[2042,"B,E,P,T"],[2043,"T"],[2046,""],[2047,"T"],[2048,""],[2049,"__D"],[2050,""],[2052,"K"],[2055,""],[2057,"T"],[2058,""],[2059,"U"],[2060,""],[2062,"B,E,P,T"],[2063,""],[2064,"__S"],[2065,"T"],[2066,"U,T"],[2067,"U"],[2068,""],[2069,"V"],[2072,"B,E,P,T"],[2076,"T"],[2080,""],[2081,"T"],[2089,""],[2090,"T"],[2091,""],[2092,"__D"],[2094,""],[2098,"K"],[2101,""],[2104,"T"],[2108,""],[2109,"U"],[2113,""],[2117,"B,E,P,T"],[2121,""],[2127,"__S"],[2129,""],[2130,"T"],[2131,"U,T"],[2135,"U"],[2139,""],[2143,"V"],[2148,"B,E,P,T"],[2149,"T"],[2152,""],[2153,"T"],[2154,""],[2155,"U"],[2156,""],[2158,"B,E,P,T"],[2159,""],[2160,"U,T"],[2161,"U"],[2162,""],[2163,"V"],[2169,""],[2170,"B,E,P,T"],[2171,"T"],[2174,""],[2179,"T"],[2180,""],[2183,"U"],[2184,""],[2188,"B,A"],[2189,"B,E,P,T"],[2190,""],[2196,"U,T"],[2197,"U"],[2198,""],[2202,"V"],[2203,""],[2208,"B,E,P,T"],[2209,"T"],[2212,""],[2213,"T"],[2214,""],[2218,"T"],[2219,""],[2220,"U"],[2221,""],[2223,"B,E,P,T"],[2224,""],[2226,"T"],[2227,"U,T"],[2228,"U"],[2229,""],[2230,"V"],[2234,""],[2240,"B,E,P,T"],[2241,"T"],[2244,""],[2245,"T"],[2246,"U"],[2247,""],[2248,"B,E,P,T"],[2249,""],[2252,"U,T"],[2253,"U"],[2254,""],[2256,"V"],[2258,""],[2260,"B,E,P,T"],[2264,"T"],[2281,""],[2285,"U"],[2289,""],[2296,"B,E,P,T"],[2300,""],[2306,"U,T"],[2310,"U"],[2314,""],[2318,"V"],[2323,"B,E,P,T"],[2324,"T"],[2325,""],[2326,"T"],[2329,""],[2330,"U"],[2331,""],[2333,"B,E,P,T"],[2334,""],[2335,"U,T"],[2336,"U"],[2337,""],[2338,"V"],[2340,""],[2341,"B,E,P,T"],[2342,"T"],[2345,""],[2346,"T"],[2347,"U"],[2348,""],[2349,"B,E,P,T"],[2350,""],[2352,"U,T"],[2353,"U"],[2354,""],[2357,"V"],[2360,""],[2361,"B,E,P,T"],[2362,"T"],[2365,""],[2366,"T"],[2367,""],[2368,"T"],[2369,""],[2370,"U"],[2371,""],[2373,"B,E,P,T"],[2374,""],[2376,"T"],[2377,"U,T"],[2378,"U"],[2379,""],[2382,"V"],[2417,"B,E,P,T"],[2422,"T"],[2437,"__D"],[2438,""],[2455,"T"],[2457,""],[2465,"T"],[2468,""],[2470,"U"],[2475,""],[2480,"B,E,P,T"],[2485,"__S"],[2486,""],[2496,"U,T"],[2501,"U"],[2506,""],[2527,"V"],[2532,""],[2549,"B,E,P,T"],[2552,"T"],[2561,""],[2562,"T"],[2563,""],[2566,"T"],[2569,""],[2570,"U"],[2573,""],[2577,"B,E,P,T"],[2580,""],[2583,"T"],[2584,"U,T"],[2587,"U"],[2590,""],[2593,"V"],[2598,""],[2600,"B,E,P,T"],[2603,"T"],[2612,""],[2613,"T"],[2614,""],[2617,"T"],[2620,""],[2621,"U"],[2625,""],[2628,"B,E,P,T"],[2631,""],[2634,"T"],[2635,"U,T"],[2638,"U"],[2641,""],[2644,"V"],[2648,"B,E,P,T"],[2649,"T"],[2653,""],[2655,"U"],[2656,""],[2660,"B,E,P,T"],[2661,"U,T"],[2662,"U"],[2663,""],[2664,"V"],[2665,""],[2667,"B,E,P,T"],[2668,"T"],[2671,"K,V"],[2672,"T"],[2673,""],[2675,"T"],[2676,""],[2677,"U"],[2678,""],[2679,"K,V"],[2680,"B,E,P,T"],[2681,"K,V"],[2683,"T"],[2684,"U,T"],[2685,"U"],[2686,""],[2688,"V"],[2689,""],[2696,"B,E,P,T"],[2700,"T"],[2712,""],[2713,"T"],[2714,""],[2718,"T"],[2722,""],[2723,"U"],[2727,""],[2733,"B,E,P,T"],[2737,""],[2743,"T"],[2744,"U,T"],[2748,"U"],[2752,""],[2756,"V"],[2761,"B,E,P,T"],[2762,"T"],[2766,""],[2767,"U"],[2768,""],[2770,"B,E,P,T"],[2771,"U,T"],[2772,"U"],[2773,""],[2775,"V"],[2777,""],[2778,"B,E,P,T"],[2780,"T"],[2786,""],[2787,"T"],[2788,""],[2789,"T"],[2791,""],[2792,"U"],[2794,""],[2798,"B,E,P,T"],[2801,""],[2809,"T"],[2810,"U,T"],[2812,"U"],[2814,""],[2817,"V"],[2821,""],[2822,"B,E,P,T"],[2825,"T"],[2834,""],[2835,"T"],[2838,""],[2840,"U"],[2843,""],[2851,"B,E,P,T"],[2854,""],[2859,"U,T"],[2862,"U"],[2865,""],[2868,"V"],[2872,"B,E,P,T"],[2873,"T"],[2877,""],[2879,"U"],[2880,""],[2883,"B,E,P,T"],[2884,""],[2886,"U,T"],[2887,"U"],[2888,""],[2890,"V"],[2892,""],[2893,"B,E,P,T"],[2897,"T"],[2909,""],[2910,"T"],[2911,""],[2914,"T"],[2918,""],[2919,"U"],[2923,""],[2927,"B,E,P,T"],[2931,""],[2940,"T"],[2941,"U,T"],[2945,"U"],[2949,""],[2955,"V"],[2960,"B,E,P,T"],[2961,"T"],[2964,""],[2965,"T"],[2966,""],[2968,"U"],[2969,""],[2971,"B,E,P,T"],[2972,"U,T"],[2973,"U"],[2974,""],[2976,"V"],[2982,""],[2992,"B,E,P,T"],[2998,"T"],[3004,""],[3005,"T"],[3017,""],[3020,"T"],[3022,""],[3034,"T"],[3040,""],[3042,"U"],[3048,""],[3055,"B,E,P,T"],[3061,""],[3068,"T"],[3070,"U,T"],[3076,"U"],[3082,""],[3088,"V"],[3094,"B,E,P,T"],[3095,"T"],[3100,"U"],[3101,""],[3102,"B,E,P,T"],[3103,""],[3104,"U,T"],[3105,"U"],[3106,""],[3107,"V"],[3110,""],[3112,"B,E,P,T"],[3116,"T"],[3128,""],[3130,"T"],[3132,""],[3137,"T"],[3141,""],[3143,"U"],[3147,""],[3157,"B,E,P,T"],[3161,""],[3169,"T"],[3171,"U,T"],[3175,"U"],[3179,""],[3183,"V"],[3188,""],[3189,"B,E,P,T"],[3191,"T"],[3197,""],[3198,"T"],[3199,""],[3200,"T"],[3202,""],[3203,"U"],[3205,""],[3209,"B,E,P,T"],[3211,""],[3215,"T"],[3216,"U,T"],[3218,"U"],[3220,""],[3222,"V"],[3225,""],[3227,"B,E,P,T"],[3228,"T"],[3231,""],[3234,"T"],[3235,""],[3240,"U"],[3241,""],[3244,"B,E,P,T"],[3245,"U,T"],[3246,"U"],[3247,""],[3249,"V"],[3251,""],[3252,"B,E,P,T"],[3254,"T"],[3260,""],[3261,"T"],[3262,""],[3264,"T"],[3266,""],[3267,"U"],[3269,""],[3275,"B,E,P,T"],[3277,""],[3282,"T"],[3283,"U,T"],[3285,"U"],[3287,""],[3290,"V"],[3292,""],[3294,"B,E,P,T"],[3297,"T"],[3306,""],[3307,"T"],[3308,""],[3310,"T"],[3313,""],[3315,"U"],[3318,""],[3321,"B,E,P,T"],[3324,""],[3333,"T"],[3334,"U,T"],[3337,"U"],[3340,""],[3343,"V"],[3347,"B,E,P,T"],[3348,"T"],[3352,""],[3353,"U"],[3354,""],[3356,"B,E,P,T"],[3357,""],[3358,"U,T"],[3359,"U"],[3360,""],[3361,"V"],[3362,""],[3365,"B,E,P,T"],[3366,"T"],[3367,""],[3368,"T"],[3370,""],[3372,"T"],[3373,""],[3376,"U"],[3377,""],[3379,"B,E,P,T"],[3380,""],[3385,"U,T"],[3386,"U"],[3387,""],[3388,"V"],[3391,""],[3392,"B,E,P,T"],[3395,"T"],[3404,""],[3405,"T"],[3406,""],[3410,"T"],[3413,""],[3414,"U"],[3417,""],[3420,"B,E,P,T"],[3423,""],[3427,"T"],[3428,"U,T"],[3431,"U"],[3434,""],[3438,"V"],[3441,""],[3457,"B,E,P,T"],[3465,"T"],[3473,""],[3475,"T"],[3491,""],[3504,"T"],[3512,""],[3526,"__D"],[3534,""],[3547,"K"],[3571,""],[3581,"T"],[3589,""],[3602,"U"],[3610,""],[3621,"B,E,P,T"],[3629,""],[3643,"__S"],[3644,""],[3649,"T"],[3657,""],[3658,"U,T"],[3666,"U"],[3674,""],[3691,"V"],[3701,""],[3704,"B,E,P,T"],[3705,"T"],[3708,""],[3709,"T"],[3710,""],[3711,"U"],[3712,""],[3714,"B,E,P,T"],[3715,"U,T"],[3716,"U"],[3717,""],[3718,"V"],[3721,"B,E,P,T"],[3725,"T"],[3743,""],[3749,"U"],[3753,""],[3763,"B,E,P,T"],[3767,""],[3770,"U,T"],[3774,"U"],[3778,""],[3782,"V"],[3797,""],[3812,"B,E,P,T"],[3815,"T"],[3824,""],[3827,"T"],[3830,""],[3841,"__D"],[3842,""],[3853,"T"],[3856,""],[3859,"U"],[3862,""],[3865,"B,E,P,T"],[3868,""],[3877,"__S"],[3878,""],[3879,"T"],[3882,"U,T"],[3885,"U"],[3888,""],[3891,"V"],[3897,"B,E,P,T"],[3899,""],[3900,"T"],[3906,""],[3909,"T"],[3911,""],[3915,"T"],[3917,""],[3920,"U"],[3922,""],[3927,"B,E,P,T"],[3929,""],[3938,"T"],[3940,"U,T"],[3942,"U"],[3944,""],[3946,"V"],[3950,""],[3953,"B,E,P,T"],[3956,"T"],[3965,""],[3966,"T"],[3967,""],[3969,"T"],[3972,""],[3973,"U"],[3976,""],[3980,"B,E,P,T"],[3983,""],[3989,"T"],[3990,"U,T"],[3993,"U"],[3996,""],[3999,"V"],[4003,"B,E,P,T"],[4004,"T"],[4008,"U"],[4009,""],[4011,"B,E,P,T"],[4012,"U,T"],[4013,"U"],[4014,""],[4016,"V"]]}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); +//{"start":39,"fragment_lengths":[9400,31150,31305,96076]} \ No newline at end of file diff --git a/search.desc/db_core/db_core-desc-0-.js b/search.desc/db_core/db_core-desc-0-.js new file mode 100644 index 00000000..73078bd7 --- /dev/null +++ b/search.desc/db_core/db_core-desc-0-.js @@ -0,0 +1 @@ +searchState.loadedDescShard("db_core", 0, "mCaptcha database operations\nData required to add notification\nData representing a captcha\nTrait to clone MCDatabase\ndata required to create new captcha\nLog Proof-of-Work CAPTCHA performance analytics\nRepresents Easy captcha configuration\nemail as login\nLevel struct that describes threshold-difficulty factor …\ntypes of credentials used as identifiers during login\nmCaptcha’s database requirements. To implement support …\ntype encapsulating username and hashed password of a user\nRepresents notification\nProof-of-Work CAPTCHA performance analytics\nData required to register a new user\ndatastructure representing a user’s secret\nCaptcha statistics with time recorded in UNIX epoch formats\nUser’s traffic pattern; used in generating a captcha …\ndata required to update them email of a user\nusername as login\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nGet publishing status of pow analytics for captcha ID/ …\nCreate psuedo ID against campaign ID to publish analytics\nDelete all records for campaign\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\ncheck if captcha exists\nclone DB\ntimes at which the configuration were fetched\nDatabase assigned ID\ntimes at which the PoW token was verified\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncaptcha description\ndescription of the captcha\ndescription of the captcha\nuseful imports for supporting a new database\ndifficulty factor for which the proof was generated\ndifficulty factor for which the proof was generated\ncool down duration\ncool down duration\nOptionally, email of new use\ncheck if email exists\nrepresents all the ways a trait can fail using this crate\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nnotification sender\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nhashed password of new use\nhashed password\nheading of the notification\nheading of the notification\nlog ID\ndb assigned ID of the notification\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\ncaptcha key/sitekey\nsecret key of the captcha\nsecret key of the captcha\nmark a notification read\nmessage of the notification\nmessage of the notification\nreceiver name of the notification\nnew email address of the user\nmeta operations like migration and connecting to a database\nthe peak traffic that the user’s website can handle\nping DB\nuseful imports for users working with a supported database\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nsecret of new user\nuser’s secret\ntimes at which the PoW was solved\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\nTest utilities\ntime taken to generate proof\ntime taken to generate proof\nwho is the notification addressed to?\ntraffic pattern of easy captcha\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\nusername of new user\nusername of the user\nusername\nOwner of the captcha configuration\ncheck if username exists\nworker/client type: wasm, javascript, python, etc.\nworker/client type: wasm, javascript, python, etc.\nAccount not found\nConvenience type alias for grouping driver-specific errors\nCaptcha key is taken\nCaptcha not found\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nGeneric result data structure\nEmail is taken\nContains the error value\nNotification not found\nContains the success value\nSecret is taken\nTraffic pattern not found\nUsername is taken\nReturns the argument unchanged.\nCalls U::from(self).\ndatabase connection type\nCreate database connection\nDatabase operations trait(migrations, pool creation and …\nGet database connection\ndatabase migrations\ndatabase specific pool-type\ndatabase specific error-type create connection pool\ndatabase specific error-type get connection from …\ndatabase specific error-type run migrations\nlevels for complex captcha config\neasy traffic pattern\ntest all database functions") \ No newline at end of file diff --git a/search.desc/db_sqlx_maria/db_sqlx_maria-desc-0-.js b/search.desc/db_sqlx_maria/db_sqlx_maria-desc-0-.js new file mode 100644 index 00000000..15fe5946 --- /dev/null +++ b/search.desc/db_sqlx_maria/db_sqlx_maria-desc-0-.js @@ -0,0 +1 @@ +searchState.loadedDescShard("db_sqlx_maria", 0, "Use an existing database pool\nConnect to database\nexisting connection\nfresh connection\nRepresents notification\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nCreate psuedo ID against campaign ID to publish analytics\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\ncheck if captcha exists\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncheck if email exists\nError-handling utilities\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nheading of the notification\ndb assigned ID of the notification\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nmark a notification read\nmessage of the notification\nreceiver name of the notification\nping DB\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\ncheck if username exists\nAccount not found\nData required to add notification\nError occurred within the Any driver mapping to/from the …\nConvenience type alias for grouping driver-specific errors\nData representing a captcha\nCaptcha key is taken\nCaptcha not found\nTrait to clone MCDatabase\nError occurred while decoding a value from a specific …\nColumn index was out of bounds.\nNo column found for the given name.\nError occurred while parsing a connection string.\ndatabase connection type\nCreate database connection\ndata required to create new captcha\nLog Proof-of-Work CAPTCHA performance analytics\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nDatabase operations trait(migrations, pool creation and …\nGeneric result data structure\nError returned from the database.\nError occurred while decoding a value.\nRepresents Easy captcha configuration\nemail as login\nEmail is taken\nError occured while encoding a value.\nContains the error value\nRepresents all the ways a method can fail within SQLx.\nGet database connection\nOne or more of the arguments to the called function was …\nError communicating with the database backend.\nLevel struct that describes threshold-difficulty factor …\ntypes of credentials used as identifiers during login\nmCaptcha’s database requirements. To implement support …\ndatabase migrations\ntype encapsulating username and hashed password of a user\nRepresents notification\nNotification not found\nContains the success value\nProof-of-Work CAPTCHA performance analytics\ndatabase specific pool-type\nPool::close was called while we were waiting in …\nA Pool::acquire timed out due to connections not becoming …\nUnexpected or invalid data encountered while communicating …\nData required to register a new user\nNo rows returned by a query that expected to return at …\ndatastructure representing a user’s secret\nSecret is taken\nCaptcha statistics with time recorded in UNIX epoch formats\nError occurred while attempting to establish a TLS …\nUser’s traffic pattern; used in generating a captcha …\nTraffic pattern not found\nType in query doesn’t exist. Likely due to typo or …\ndata required to update them email of a user\nusername as login\nUsername is taken\nA background worker has crashed.\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nGet publishing status of pow analytics for captcha ID/ …\nCreate psuedo ID against campaign ID to publish analytics\nDelete all records for campaign\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\ncheck if captcha exists\nclone DB\ntimes at which the configuration were fetched\nDatabase assigned ID\ntimes at which the PoW token was verified\ndatabase specific error-type create connection pool\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncaptcha description\ndescription of the captcha\ndescription of the captcha\ndifficulty factor for which the proof was generated\ndifficulty factor for which the proof was generated\ncool down duration\ncool down duration\nOptionally, email of new use\ncheck if email exists\nrepresents all the ways a trait can fail using this crate\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nnotification sender\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\ndatabase specific error-type get connection from …\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nhashed password of new use\nhashed password\nheading of the notification\nheading of the notification\nlog ID\ndb assigned ID of the notification\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\ncaptcha key/sitekey\nsecret key of the captcha\nsecret key of the captcha\nmark a notification read\nmessage of the notification\nmessage of the notification\ndatabase specific error-type run migrations\nreceiver name of the notification\nnew email address of the user\nmeta operations like migration and connecting to a database\nthe peak traffic that the user’s website can handle\nping DB\nuseful imports for users working with a supported database\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nsecret of new user\nuser’s secret\ntimes at which the PoW was solved\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\nTest utilities\ntime taken to generate proof\ntime taken to generate proof\nwho is the notification addressed to?\ntraffic pattern of easy captcha\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\nusername of new user\nusername of the user\nusername\nOwner of the captcha configuration\ncheck if username exists\nworker/client type: wasm, javascript, python, etc.\nworker/client type: wasm, javascript, python, etc.\nAccount not found\nConvenience type alias for grouping driver-specific errors\nCaptcha key is taken\nCaptcha not found\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nGeneric result data structure\nEmail is taken\nContains the error value\nNotification not found\nContains the success value\nSecret is taken\nTraffic pattern not found\nUsername is taken\ndatabase connection type\nCreate database connection\nDatabase operations trait(migrations, pool creation and …\nGet database connection\ndatabase migrations\ndatabase specific pool-type\ndatabase specific error-type create connection pool\ndatabase specific error-type get connection from …\ndatabase specific error-type run migrations\nAccount not found\nData required to add notification\nConvenience type alias for grouping driver-specific errors\nData representing a captcha\nCaptcha key is taken\nCaptcha not found\nTrait to clone MCDatabase\ndatabase connection type\nCreate database connection\ndata required to create new captcha\nLog Proof-of-Work CAPTCHA performance analytics\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nDatabase operations trait(migrations, pool creation and …\nGeneric result data structure\nRepresents Easy captcha configuration\nemail as login\nEmail is taken\nContains the error value\nGet database connection\nLevel struct that describes threshold-difficulty factor …\ntypes of credentials used as identifiers during login\nmCaptcha’s database requirements. To implement support …\ndatabase migrations\ntype encapsulating username and hashed password of a user\nRepresents notification\nNotification not found\nContains the success value\nProof-of-Work CAPTCHA performance analytics\ndatabase specific pool-type\nData required to register a new user\ndatastructure representing a user’s secret\nSecret is taken\nCaptcha statistics with time recorded in UNIX epoch formats\nUser’s traffic pattern; used in generating a captcha …\nTraffic pattern not found\ndata required to update them email of a user\nusername as login\nUsername is taken\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nGet publishing status of pow analytics for captcha ID/ …\nCreate psuedo ID against campaign ID to publish analytics\nDelete all records for campaign\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\ncheck if captcha exists\nclone DB\ntimes at which the configuration were fetched\nDatabase assigned ID\ntimes at which the PoW token was verified\ndatabase specific error-type create connection pool\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncaptcha description\ndescription of the captcha\ndescription of the captcha\nuseful imports for supporting a new database\ndifficulty factor for which the proof was generated\ndifficulty factor for which the proof was generated\ncool down duration\ncool down duration\nOptionally, email of new use\ncheck if email exists\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nnotification sender\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\ndatabase specific error-type get connection from …\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nhashed password of new use\nhashed password\nheading of the notification\nheading of the notification\nlog ID\ndb assigned ID of the notification\ncaptcha key/sitekey\nsecret key of the captcha\nsecret key of the captcha\nmark a notification read\nmessage of the notification\nmessage of the notification\ndatabase specific error-type run migrations\nreceiver name of the notification\nnew email address of the user\nthe peak traffic that the user’s website can handle\nping DB\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nsecret of new user\nuser’s secret\ntimes at which the PoW was solved\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\ntime taken to generate proof\ntime taken to generate proof\nwho is the notification addressed to?\ntraffic pattern of easy captcha\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\nusername of new user\nusername of the user\nusername\nOwner of the captcha configuration\ncheck if username exists\nworker/client type: wasm, javascript, python, etc.\nworker/client type: wasm, javascript, python, etc.\nAccount not found\nData required to add notification\nConvenience type alias for grouping driver-specific errors\nData representing a captcha\nCaptcha key is taken\nCaptcha not found\nTrait to clone MCDatabase\ndatabase connection type\nCreate database connection\ndata required to create new captcha\nLog Proof-of-Work CAPTCHA performance analytics\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nDatabase operations trait(migrations, pool creation and …\nGeneric result data structure\nRepresents Easy captcha configuration\nemail as login\nEmail is taken\nContains the error value\nGet database connection\nLevel struct that describes threshold-difficulty factor …\ntypes of credentials used as identifiers during login\nmCaptcha’s database requirements. To implement support …\ndatabase migrations\ntype encapsulating username and hashed password of a user\nRepresents notification\nNotification not found\nContains the success value\nProof-of-Work CAPTCHA performance analytics\ndatabase specific pool-type\nData required to register a new user\ndatastructure representing a user’s secret\nSecret is taken\nCaptcha statistics with time recorded in UNIX epoch formats\nUser’s traffic pattern; used in generating a captcha …\nTraffic pattern not found\ndata required to update them email of a user\nusername as login\nUsername is taken\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nGet publishing status of pow analytics for captcha ID/ …\nCreate psuedo ID against campaign ID to publish analytics\nDelete all records for campaign\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\ncheck if captcha exists\nclone DB\ntimes at which the configuration were fetched\nDatabase assigned ID\ntimes at which the PoW token was verified\ndatabase specific error-type create connection pool\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncaptcha description\ndescription of the captcha\ndescription of the captcha\ndifficulty factor for which the proof was generated\ndifficulty factor for which the proof was generated\ncool down duration\ncool down duration\nOptionally, email of new use\ncheck if email exists\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nnotification sender\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\ndatabase specific error-type get connection from …\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nhashed password of new use\nhashed password\nheading of the notification\nheading of the notification\nlog ID\ndb assigned ID of the notification\ncaptcha key/sitekey\nsecret key of the captcha\nsecret key of the captcha\nmark a notification read\nmessage of the notification\nmessage of the notification\ndatabase specific error-type run migrations\nreceiver name of the notification\nnew email address of the user\nthe peak traffic that the user’s website can handle\nping DB\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nsecret of new user\nuser’s secret\ntimes at which the PoW was solved\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\ntime taken to generate proof\ntime taken to generate proof\nwho is the notification addressed to?\ntraffic pattern of easy captcha\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\nusername of new user\nusername of the user\nusername\nOwner of the captcha configuration\ncheck if username exists\nworker/client type: wasm, javascript, python, etc.\nworker/client type: wasm, javascript, python, etc.\nlevels for complex captcha config\neasy traffic pattern\ntest all database functions\nmap postgres errors to DBError types\nmap custom row not found error to DB error") \ No newline at end of file diff --git a/search.desc/db_sqlx_postgres/db_sqlx_postgres-desc-0-.js b/search.desc/db_sqlx_postgres/db_sqlx_postgres-desc-0-.js new file mode 100644 index 00000000..4e7cd765 --- /dev/null +++ b/search.desc/db_sqlx_postgres/db_sqlx_postgres-desc-0-.js @@ -0,0 +1 @@ +searchState.loadedDescShard("db_sqlx_postgres", 0, "Use an existing database pool\nConnect to database\nexisting connection\nfresh connection\nRepresents notification\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nCreate psuedo ID against campaign ID to publish analytics\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\ncheck if captcha exists\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncheck if email exists\nError-handling utilities\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nheading of the notification\ndb assigned ID of the notification\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nmark a notification read\nmessage of the notification\nreceiver name of the notification\nping DB\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\ncheck if username exists\nAccount not found\nData required to add notification\nError occurred within the Any driver mapping to/from the …\nConvenience type alias for grouping driver-specific errors\nData representing a captcha\nCaptcha key is taken\nCaptcha not found\nTrait to clone MCDatabase\nError occurred while decoding a value from a specific …\nColumn index was out of bounds.\nNo column found for the given name.\nError occurred while parsing a connection string.\ndatabase connection type\nCreate database connection\ndata required to create new captcha\nLog Proof-of-Work CAPTCHA performance analytics\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nDatabase operations trait(migrations, pool creation and …\nGeneric result data structure\nError returned from the database.\nError occurred while decoding a value.\nRepresents Easy captcha configuration\nemail as login\nEmail is taken\nError occured while encoding a value.\nContains the error value\nRepresents all the ways a method can fail within SQLx.\nGet database connection\nOne or more of the arguments to the called function was …\nError communicating with the database backend.\nLevel struct that describes threshold-difficulty factor …\ntypes of credentials used as identifiers during login\nmCaptcha’s database requirements. To implement support …\ndatabase migrations\ntype encapsulating username and hashed password of a user\nRepresents notification\nNotification not found\nContains the success value\nProof-of-Work CAPTCHA performance analytics\ndatabase specific pool-type\nPool::close was called while we were waiting in …\nA Pool::acquire timed out due to connections not becoming …\nUnexpected or invalid data encountered while communicating …\nData required to register a new user\nNo rows returned by a query that expected to return at …\ndatastructure representing a user’s secret\nSecret is taken\nCaptcha statistics with time recorded in UNIX epoch formats\nError occurred while attempting to establish a TLS …\nUser’s traffic pattern; used in generating a captcha …\nTraffic pattern not found\nType in query doesn’t exist. Likely due to typo or …\ndata required to update them email of a user\nusername as login\nUsername is taken\nA background worker has crashed.\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nGet publishing status of pow analytics for captcha ID/ …\nCreate psuedo ID against campaign ID to publish analytics\nDelete all records for campaign\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\ncheck if captcha exists\nclone DB\ntimes at which the configuration were fetched\nDatabase assigned ID\ntimes at which the PoW token was verified\ndatabase specific error-type create connection pool\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncaptcha description\ndescription of the captcha\ndescription of the captcha\ndifficulty factor for which the proof was generated\ndifficulty factor for which the proof was generated\ncool down duration\ncool down duration\nOptionally, email of new use\ncheck if email exists\nrepresents all the ways a trait can fail using this crate\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nnotification sender\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\ndatabase specific error-type get connection from …\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nhashed password of new use\nhashed password\nheading of the notification\nheading of the notification\nlog ID\ndb assigned ID of the notification\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\ncaptcha key/sitekey\nsecret key of the captcha\nsecret key of the captcha\nmark a notification read\nmessage of the notification\nmessage of the notification\ndatabase specific error-type run migrations\nreceiver name of the notification\nnew email address of the user\nmeta operations like migration and connecting to a database\nthe peak traffic that the user’s website can handle\nping DB\nuseful imports for users working with a supported database\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nsecret of new user\nuser’s secret\ntimes at which the PoW was solved\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\nTest utilities\ntime taken to generate proof\ntime taken to generate proof\nwho is the notification addressed to?\ntraffic pattern of easy captcha\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\nusername of new user\nusername of the user\nusername\nOwner of the captcha configuration\ncheck if username exists\nworker/client type: wasm, javascript, python, etc.\nworker/client type: wasm, javascript, python, etc.\nAccount not found\nConvenience type alias for grouping driver-specific errors\nCaptcha key is taken\nCaptcha not found\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nGeneric result data structure\nEmail is taken\nContains the error value\nNotification not found\nContains the success value\nSecret is taken\nTraffic pattern not found\nUsername is taken\ndatabase connection type\nCreate database connection\nDatabase operations trait(migrations, pool creation and …\nGet database connection\ndatabase migrations\ndatabase specific pool-type\ndatabase specific error-type create connection pool\ndatabase specific error-type get connection from …\ndatabase specific error-type run migrations\nAccount not found\nData required to add notification\nConvenience type alias for grouping driver-specific errors\nData representing a captcha\nCaptcha key is taken\nCaptcha not found\nTrait to clone MCDatabase\ndatabase connection type\nCreate database connection\ndata required to create new captcha\nLog Proof-of-Work CAPTCHA performance analytics\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nDatabase operations trait(migrations, pool creation and …\nGeneric result data structure\nRepresents Easy captcha configuration\nemail as login\nEmail is taken\nContains the error value\nGet database connection\nLevel struct that describes threshold-difficulty factor …\ntypes of credentials used as identifiers during login\nmCaptcha’s database requirements. To implement support …\ndatabase migrations\ntype encapsulating username and hashed password of a user\nRepresents notification\nNotification not found\nContains the success value\nProof-of-Work CAPTCHA performance analytics\ndatabase specific pool-type\nData required to register a new user\ndatastructure representing a user’s secret\nSecret is taken\nCaptcha statistics with time recorded in UNIX epoch formats\nUser’s traffic pattern; used in generating a captcha …\nTraffic pattern not found\ndata required to update them email of a user\nusername as login\nUsername is taken\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nGet publishing status of pow analytics for captcha ID/ …\nCreate psuedo ID against campaign ID to publish analytics\nDelete all records for campaign\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\ncheck if captcha exists\nclone DB\ntimes at which the configuration were fetched\nDatabase assigned ID\ntimes at which the PoW token was verified\ndatabase specific error-type create connection pool\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncaptcha description\ndescription of the captcha\ndescription of the captcha\nuseful imports for supporting a new database\ndifficulty factor for which the proof was generated\ndifficulty factor for which the proof was generated\ncool down duration\ncool down duration\nOptionally, email of new use\ncheck if email exists\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nnotification sender\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\ndatabase specific error-type get connection from …\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nhashed password of new use\nhashed password\nheading of the notification\nheading of the notification\nlog ID\ndb assigned ID of the notification\ncaptcha key/sitekey\nsecret key of the captcha\nsecret key of the captcha\nmark a notification read\nmessage of the notification\nmessage of the notification\ndatabase specific error-type run migrations\nreceiver name of the notification\nnew email address of the user\nthe peak traffic that the user’s website can handle\nping DB\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nsecret of new user\nuser’s secret\ntimes at which the PoW was solved\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\ntime taken to generate proof\ntime taken to generate proof\nwho is the notification addressed to?\ntraffic pattern of easy captcha\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\nusername of new user\nusername of the user\nusername\nOwner of the captcha configuration\ncheck if username exists\nworker/client type: wasm, javascript, python, etc.\nworker/client type: wasm, javascript, python, etc.\nAccount not found\nData required to add notification\nConvenience type alias for grouping driver-specific errors\nData representing a captcha\nCaptcha key is taken\nCaptcha not found\nTrait to clone MCDatabase\ndatabase connection type\nCreate database connection\ndata required to create new captcha\nLog Proof-of-Work CAPTCHA performance analytics\nError data structure grouping various error subtypes\nerrors that are specific to a database implementation\nDatabase operations trait(migrations, pool creation and …\nGeneric result data structure\nRepresents Easy captcha configuration\nemail as login\nEmail is taken\nContains the error value\nGet database connection\nLevel struct that describes threshold-difficulty factor …\ntypes of credentials used as identifiers during login\nmCaptcha’s database requirements. To implement support …\ndatabase migrations\ntype encapsulating username and hashed password of a user\nRepresents notification\nNotification not found\nContains the success value\nProof-of-Work CAPTCHA performance analytics\ndatabase specific pool-type\nData required to register a new user\ndatastructure representing a user’s secret\nSecret is taken\nCaptcha statistics with time recorded in UNIX epoch formats\nUser’s traffic pattern; used in generating a captcha …\nTraffic pattern not found\ndata required to update them email of a user\nusername as login\nUsername is taken\nAdd levels to captcha\nAdd traffic configuration\nrecord PoW timing\nGet publishing status of pow analytics for captcha ID/ …\nCreate psuedo ID against campaign ID to publish analytics\nDelete all records for campaign\nfetch PoW analytics\nGet all psuedo IDs\nGet campaign ID from psuedo ID\nGet psuedo ID from campaign ID\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\ncheck if captcha exists\nclone DB\ntimes at which the configuration were fetched\nDatabase assigned ID\ntimes at which the PoW token was verified\ndatabase specific error-type create connection pool\ncreate new captcha\ncreate new notification\nDelete captcha\nDelete all levels of a captcha\nDelete traffic configuration\ndelete a user\ncaptcha description\ndescription of the captcha\ndescription of the captcha\ndifficulty factor for which the proof was generated\ndifficulty factor for which the proof was generated\ncool down duration\ncool down duration\nOptionally, email of new use\ncheck if email exists\nfetch PoWConfig fetches\nfetch PoWConfig confirms\nfetch PoWConfig solves\nnotification sender\nGet all easy captcha configurations on instance\nget all unread notifications\nGet all captchas belonging to user\nGet captcha config\nGet captcha’s cooldown period\nGet captcha levels\ndatabase specific error-type get connection from …\nget user email\nGet maximum nonce tracked so far for captcha levels\nget a user’s password\nget a user’s secret\nget a user’s secret from a captcha key\nGet traffic configuration\nhashed password of new use\nhashed password\nheading of the notification\nheading of the notification\nlog ID\ndb assigned ID of the notification\ncaptcha key/sitekey\nsecret key of the captcha\nsecret key of the captcha\nmark a notification read\nmessage of the notification\nmessage of the notification\ndatabase specific error-type run migrations\nreceiver name of the notification\nnew email address of the user\nthe peak traffic that the user’s website can handle\nping DB\nwhen notification was received\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig solves\nregister a new user\nsecret of new user\nuser’s secret\ntimes at which the PoW was solved\nGet the entry at a location in the list of analytics …\nGet number of analytics entries that are under a certain …\ntime taken to generate proof\ntime taken to generate proof\nwho is the notification addressed to?\ntraffic pattern of easy captcha\nupdate captcha key; doesn’t change metadata\nupdate captcha metadata; doesn’t change captcha key\nupdate a user’s email\nTrack maximum nonce received against captcha levels\nupdate user’s password\nupdate a user’s secret\nupdate username\nusername of new user\nusername of the user\nusername\nOwner of the captcha configuration\ncheck if username exists\nworker/client type: wasm, javascript, python, etc.\nworker/client type: wasm, javascript, python, etc.\nlevels for complex captcha config\neasy traffic pattern\ntest all database functions\nmap postgres errors to DBError types\nmap custom row not found error to DB error") \ No newline at end of file diff --git a/search.desc/mcaptcha/mcaptcha-desc-0-.js b/search.desc/mcaptcha/mcaptcha-desc-0-.js new file mode 100644 index 00000000..88d0edc6 --- /dev/null +++ b/search.desc/mcaptcha/mcaptcha-desc-0-.js @@ -0,0 +1 @@ +searchState.loadedDescShard("mcaptcha", 0, "App data\npoints to source files matching build commit\nmCaptcha system: Redis cache, etc.\ncredential management configuration\nApp data: redis cache, database connections, etc.\ndatabase ops defined by db crates\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nemail client\napp settings\nstats recorder\nsurvey secret store\nUser facing CAPTCHA widget\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nupdate email\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nupdate username\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nreturns Ok(()) when everything checks out and the user is …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nUser’s traffic pattern; used in generating a captcha …\naverage traffic of user’s website\ntraffic that bought the user’s website down; optional\nCaptcha description\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nthe peak traffic that the user’s website can handle\npublish benchmarks\neasy is using defaults\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nBuilder for BuildDetails.\nError type for BuildDetailsBuilder\nHealth check return datatype\nBuilder for Health.\nError type for HealthBuilder\nUninitialized field\nUninitialized field\nCustom validation error\nCustom validation error\nBuilds a new BuildDetails.\nBuilds a new Health.\nemits build details of the bninary\nCreate an empty builder, with all fields set to None or …\nCreate an empty builder, with all fields set to None or …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nchecks all components of the system\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nToString::to_string, but without panic on OOM.\nToString::to_string, but without panic on OOM.\nReturns the argument unchanged.\nCalls U::from(self).\nroute handler that adds a notification message\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nroute handler that gets all unread notifications\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nroute handler that marks a notification read\nReturns the argument unchanged.\nCalls U::from(self).\nPoW Verification module\nPoW success token module\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nget PoW configuration for an mcaptcha key\nCall this when MCaptcha is not in master.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nremove scope for $name route\nCalls U::from(self).\nremove scope for $name route\nremove scope for $name route\nvalidation token that clients receive as proof for …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nroute handler that verifies PoW and issues a solution token\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nroute handler that validates a PoW solution token\nReturns the argument unchanged.\nCalls U::from(self).\nBuilder for BuildDetails.\nError type for BuildDetailsBuilder\nHealth check return datatype\nBuilder for PercentileReq.\nError type for PercentileReqBuilder\nHealth check return datatype\nBuilder for PercentileResp.\nError type for PercentileRespBuilder\nUninitialized field\nUninitialized field\nUninitialized field\nCustom validation error\nCustom validation error\nCustom validation error\nBuilds a new BuildDetails.\nBuilds a new PercentileReq.\nBuilds a new PercentileResp.\nCreate an empty builder, with all fields set to None or …\nCreate an empty builder, with all fields set to None or …\nCreate an empty builder, with all fields set to None or …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet difficulty factor with max time limit for percentile …\nToString::to_string, but without panic on OOM.\nToString::to_string, but without panic on OOM.\nToString::to_string, but without panic on OOM.\nReturns the argument unchanged.\nCalls U::from(self).\nemits build details of the bninary\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nmCaptcha/survey upload secret route\nReturns the argument unchanged.\nCalls U::from(self).\nApp data\nMailer data type AsyncSmtpTransport\nRepresents mCaptcha cache and master system. When Redis is …\nmCaptcha system: Redis cache, etc.\ncredential management configuration\ndatabase ops defined by db crates\nReturns the argument unchanged.\nCalls U::from(self).\nemail client\ncreate new instance of app data\napp settings\nstats recorder\nsurvey secret store\nprint date\nReturns the argument unchanged.\nCalls U::from(self).\nprint relative time from date\nDemo password\nDemo username\nReturns the argument unchanged.\nCalls U::from(self).\nregister demo user runner\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet an embedded file and its metadata.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterates over the file paths in the folder.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nupdate configurations\nEmail operations: verification, notification, etc\nReturns the argument unchanged.\nCalls U::from(self).\nwhen the value passed contains blacklisted words see …\ncaptcha not found\nemail is already taken\nContains the error value\nContains the error value\nContains the success value\nContains the success value\nwhen the value passed contains profainity\ntoken not found\nTraffic pattern not found\nUnable to send email\nwhen the value passed contains characters not present in …\nwhen the a username is already taken\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nToString::to_string, but without panic on OOM.\nToString::to_string, but without panic on OOM.\nToString::to_string, but without panic on OOM.\nToString::to_string, but without panic on OOM.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nnotifications\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nroute handler that renders individual views for sitekeys\nroute handler that renders individual views for sitekeys\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nrender a list of all sitekeys that a user has\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nroute handler that renders individual views for sitekeys\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nToString::to_string, but without panic on OOM.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet an embedded file and its metadata.\nGet an embedded file and its metadata.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterates over the file paths in the folder.\nIterates over the file paths in the folder.\nTrait to clone MCDatabase\nclone DB\nfetch stats\nfetch stats\nfetch stats\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nrecord PoWConfig confirms\nrecord PoWConfig confirms\nrecord PoWConfig confirms\nrecord PoWConfig fetches\nrecord PoWConfig fetches\nrecord PoWConfig fetches\nrecord PoWConfig solves\nrecord PoWConfig solves\nrecord PoWConfig solves\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nwidget services\nrender a client side widget for CAPTCHA verification\nReturns the argument unchanged.\nCalls U::from(self).") \ No newline at end of file diff --git a/settings.html b/settings.html index 637c5e5b..4b5fdfdc 100644 --- a/settings.html +++ b/settings.html @@ -1,2 +1 @@ -Settings -

    Rustdoc settings

    Back
    \ No newline at end of file +Settings

    Rustdoc settings

    Back
    \ No newline at end of file diff --git a/src-files.js b/src-files.js index 02a116da..e9cc4e41 100644 --- a/src-files.js +++ b/src-files.js @@ -1,7 +1,2 @@ -var srcIndex = new Map(JSON.parse('[\ -["db_core",["",[],["errors.rs","lib.rs","ops.rs","tests.rs"]]],\ -["db_sqlx_maria",["",[],["errors.rs","lib.rs"]]],\ -["db_sqlx_postgres",["",[],["errors.rs","lib.rs"]]],\ -["mcaptcha",["",[["api",[["v1",[["account",[],["delete.rs","email.rs","mod.rs","password.rs","secret.rs","username.rs"]],["mcaptcha",[],["create.rs","delete.rs","easy.rs","get.rs","mod.rs","stats.rs","update.rs"]],["notifications",[],["add.rs","get.rs","mark_read.rs","mod.rs"]],["pow",[],["get_config.rs","mod.rs","verify_pow.rs","verify_token.rs"]]],["auth.rs","meta.rs","mod.rs","routes.rs","stats.rs","survey.rs"]]],["mod.rs"]],["email",[],["mod.rs","verification.rs"]],["pages",[["auth",[],["login.rs","mod.rs","register.rs","sudo.rs"]],["panel",[["sitekey",[],["add.rs","delete.rs","edit.rs","list.rs","mod.rs","view.rs"]]],["mod.rs","notifications.rs","settings.rs","utils.rs"]]],["errors.rs","mod.rs","routes.rs","sitemap.rs"]],["static_assets",[],["filemap.rs","mod.rs","static_files.rs"]],["widget",[],["mod.rs"]]],["data.rs","date.rs","db.rs","demo.rs","docs.rs","easy.rs","errors.rs","main.rs","routes.rs","settings.rs","stats.rs","survey.rs"]]]\ -]')); -createSrcSidebar(); +createSrcSidebar('[["db_core",["",[],["errors.rs","lib.rs","ops.rs","tests.rs"]]],["db_sqlx_maria",["",[],["errors.rs","lib.rs"]]],["db_sqlx_postgres",["",[],["errors.rs","lib.rs"]]],["mcaptcha",["",[["api",[["v1",[["account",[],["delete.rs","email.rs","mod.rs","password.rs","secret.rs","username.rs"]],["mcaptcha",[],["create.rs","delete.rs","easy.rs","get.rs","mod.rs","stats.rs","update.rs"]],["notifications",[],["add.rs","get.rs","mark_read.rs","mod.rs"]],["pow",[],["get_config.rs","mod.rs","verify_pow.rs","verify_token.rs"]]],["auth.rs","meta.rs","mod.rs","routes.rs","stats.rs","survey.rs"]]],["mod.rs"]],["email",[],["mod.rs","verification.rs"]],["pages",[["auth",[],["login.rs","mod.rs","register.rs","sudo.rs"]],["panel",[["sitekey",[],["add.rs","delete.rs","edit.rs","list.rs","mod.rs","view.rs"]]],["mod.rs","notifications.rs","settings.rs","utils.rs"]]],["errors.rs","mod.rs","routes.rs","sitemap.rs"]],["static_assets",[],["filemap.rs","mod.rs","static_files.rs"]],["widget",[],["mod.rs"]]],["data.rs","date.rs","db.rs","demo.rs","docs.rs","easy.rs","errors.rs","main.rs","routes.rs","settings.rs","stats.rs","survey.rs"]]]]'); +//{"start":19,"fragment_lengths":[62,49,52,958]} \ No newline at end of file diff --git a/src/db_core/errors.rs.html b/src/db_core/errors.rs.html index 27587f3c..abc0ad2f 100644 --- a/src/db_core/errors.rs.html +++ b/src/db_core/errors.rs.html @@ -1,103 +1,50 @@ -errors.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! represents all the ways a trait can fail using this crate
    -use std::error::Error as StdError;
    -
    -//use derive_more::{error, Error as DeriveError};
    -use thiserror::Error;
    -
    -/// Error data structure grouping various error subtypes
    -#[derive(Debug, Error)]
    -pub enum DBError {
    -    /// errors that are specific to a database implementation
    -    #[error("{0}")]
    -    DBError(#[source] BoxDynError),
    -    /// Username is taken
    -    #[error("Username is taken")]
    -    UsernameTaken,
    -    /// Email is taken
    -    #[error("Email is taken")]
    -    EmailTaken,
    -    /// Secret is taken
    -    #[error("Secret is taken")]
    -    SecretTaken,
    -    /// Captcha key is taken
    -    #[error("Captcha key is taken")]
    -    CaptchaKeyTaken,
    -    /// Account not found
    -    #[error("Account not found")]
    -    AccountNotFound,
    -
    -    /// Captcha not found
    -    #[error("Captcha not found")]
    -    CaptchaNotFound,
    -    /// Traffic pattern not found
    -    #[error("Traffic pattern not found")]
    -    TrafficPatternNotFound,
    -
    -    /// Notification not found
    -    #[error("Notification not found")]
    -    NotificationNotFound,
    -}
    -
    -/// Convenience type alias for grouping driver-specific errors
    -pub type BoxDynError = Box<dyn StdError + 'static + Send + Sync>;
    -
    -/// Generic result data structure
    -pub type DBResult<V> = std::result::Result<V, DBError>;
    -
    \ No newline at end of file +errors.rs - source

    db_core/
    errors.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! represents all the ways a trait can fail using this crate
    +7use std::error::Error as StdError;
    +8
    +9//use derive_more::{error, Error as DeriveError};
    +10use thiserror::Error;
    +11
    +12/// Error data structure grouping various error subtypes
    +13#[derive(Debug, Error)]
    +14pub enum DBError {
    +15    /// errors that are specific to a database implementation
    +16    #[error("{0}")]
    +17    DBError(#[source] BoxDynError),
    +18    /// Username is taken
    +19    #[error("Username is taken")]
    +20    UsernameTaken,
    +21    /// Email is taken
    +22    #[error("Email is taken")]
    +23    EmailTaken,
    +24    /// Secret is taken
    +25    #[error("Secret is taken")]
    +26    SecretTaken,
    +27    /// Captcha key is taken
    +28    #[error("Captcha key is taken")]
    +29    CaptchaKeyTaken,
    +30    /// Account not found
    +31    #[error("Account not found")]
    +32    AccountNotFound,
    +33
    +34    /// Captcha not found
    +35    #[error("Captcha not found")]
    +36    CaptchaNotFound,
    +37    /// Traffic pattern not found
    +38    #[error("Traffic pattern not found")]
    +39    TrafficPatternNotFound,
    +40
    +41    /// Notification not found
    +42    #[error("Notification not found")]
    +43    NotificationNotFound,
    +44}
    +45
    +46/// Convenience type alias for grouping driver-specific errors
    +47pub type BoxDynError = Box<dyn StdError + 'static + Send + Sync>;
    +48
    +49/// Generic result data structure
    +50pub 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 3e22ed5b..3fd5e130 100644 --- a/src/db_core/lib.rs.html +++ b/src/db_core/lib.rs.html @@ -1,935 +1,466 @@ -lib.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    -400
    -401
    -402
    -403
    -404
    -405
    -406
    -407
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    -424
    -425
    -426
    -427
    -428
    -429
    -430
    -431
    -432
    -433
    -434
    -435
    -436
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    -464
    -465
    -466
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -#![warn(missing_docs)]
    -//! # `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
    -//! implemented.
    -//!
    -//!
    -//! ## Organisation
    -//!
    -//! Database functionality is divided across various modules:
    -//!
    -//! - [errors](crate::auth): error data structures used in this crate
    -//! - [ops](crate::ops): meta operations like connection pool creation, migrations and getting
    -//! connection from pool
    -use serde::{Deserialize, Serialize};
    -
    -pub use libmcaptcha::defense::Level;
    -
    -pub mod errors;
    -pub mod ops;
    -#[cfg(feature = "test")]
    -pub mod tests;
    -
    -use dev::*;
    -pub use ops::GetConnection;
    -
    -pub mod prelude {
    -    //! useful imports for users working with a supported database
    -
    -    pub use super::errors::*;
    -    pub use super::ops::*;
    -    pub use super::*;
    -}
    -
    -pub mod dev {
    -    //! useful imports for supporting a new database
    -    pub use super::prelude::*;
    -    pub use async_trait::async_trait;
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    -/// Data required to register a new user
    -pub struct Register<'a> {
    -    /// username of new user
    -    pub username: &'a str,
    -    /// secret of new user
    -    pub secret: &'a str,
    -    /// hashed password of new use
    -    pub hash: &'a str,
    -    /// Optionally, email of new use
    -    pub email: Option<&'a str>,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    -/// data required to update them email of a user
    -pub struct UpdateEmail<'a> {
    -    /// username of the user
    -    pub username: &'a str,
    -    /// new email address of the user
    -    pub new_email: &'a str,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    -/// types of credentials used as identifiers during login
    -pub enum Login<'a> {
    -    /// username as login
    -    Username(&'a str),
    -    /// email as login
    -    Email(&'a str),
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    -/// type encapsulating username and hashed password of a user
    -pub struct NameHash {
    -    /// username
    -    pub username: String,
    -    /// hashed password
    -    pub hash: String,
    -}
    -
    -#[async_trait]
    -/// mCaptcha's database requirements. To implement support for $Database, kindly implement this
    -/// trait.
    -pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase {
    -    /// ping DB
    -    async fn ping(&self) -> bool;
    -
    -    /// register a new user
    -    async fn register(&self, p: &Register) -> DBResult<()>;
    -
    -    /// delete a user
    -    async fn delete_user(&self, username: &str) -> DBResult<()>;
    -
    -    /// check if username exists
    -    async fn username_exists(&self, username: &str) -> DBResult<bool>;
    -
    -    /// get user email
    -    async fn get_email(&self, username: &str) -> DBResult<Option<String>>;
    -
    -    /// check if email exists
    -    async fn email_exists(&self, email: &str) -> DBResult<bool>;
    -
    -    /// update a user's email
    -    async fn update_email(&self, p: &UpdateEmail) -> DBResult<()>;
    -
    -    /// get a user's password
    -    async fn get_password(&self, l: &Login) -> DBResult<NameHash>;
    -
    -    /// update user's password
    -    async fn update_password(&self, p: &NameHash) -> DBResult<()>;
    -
    -    /// update username
    -    async fn update_username(&self, current: &str, new: &str) -> DBResult<()>;
    -
    -    /// get a user's secret
    -    async fn get_secret(&self, username: &str) -> DBResult<Secret>;
    -
    -    /// get a user's secret from a captcha key
    -    async fn get_secret_from_captcha(&self, key: &str) -> DBResult<Secret>;
    -
    -    /// update a user's secret
    -    async fn update_secret(&self, username: &str, secret: &str) -> DBResult<()>;
    -
    -    /// create new captcha
    -    async fn create_captcha(&self, username: &str, p: &CreateCaptcha) -> DBResult<()>;
    -
    -    /// Get captcha config
    -    async fn get_captcha_config(&self, username: &str, key: &str) -> DBResult<Captcha>;
    -
    -    /// Get all captchas belonging to user
    -    async fn get_all_user_captchas(&self, username: &str) -> DBResult<Vec<Captcha>>;
    -
    -    /// update captcha metadata; doesn't change captcha key
    -    async fn update_captcha_metadata(
    -        &self,
    -        username: &str,
    -        p: &CreateCaptcha,
    -    ) -> DBResult<()>;
    -
    -    /// update captcha key; doesn't change metadata
    -    async fn update_captcha_key(
    -        &self,
    -        username: &str,
    -        old_key: &str,
    -        new_key: &str,
    -    ) -> DBResult<()>;
    -
    -    /// Add levels to captcha
    -    async fn add_captcha_levels(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -        levels: &[Level],
    -    ) -> DBResult<()>;
    -
    -    /// check if captcha exists
    -    async fn captcha_exists(
    -        &self,
    -        username: Option<&str>,
    -        captcha_key: &str,
    -    ) -> DBResult<bool>;
    -
    -    /// Delete all levels of a captcha
    -    async fn delete_captcha_levels(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<()>;
    -
    -    /// Delete captcha
    -    async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()>;
    -
    -    /// Get captcha levels
    -    async fn get_captcha_levels(
    -        &self,
    -        username: Option<&str>,
    -        captcha_key: &str,
    -    ) -> DBResult<Vec<Level>>;
    -
    -    /// Get captcha's cooldown period
    -    async fn get_captcha_cooldown(&self, captcha_key: &str) -> DBResult<i32>;
    -
    -    /// Add traffic configuration
    -    async fn add_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -        pattern: &TrafficPattern,
    -    ) -> DBResult<()>;
    -
    -    /// Get traffic configuration
    -    async fn get_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<TrafficPattern>;
    -
    -    /// Get all easy captcha configurations on instance
    -    async fn get_all_easy_captchas(
    -        &self,
    -        limit: usize,
    -        offset: usize,
    -    ) -> DBResult<Vec<EasyCaptcha>>;
    -
    -    /// Delete traffic configuration
    -    async fn delete_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<()>;
    -
    -    /// create new notification
    -    async fn create_notification(&self, p: &AddNotification) -> DBResult<()>;
    -
    -    /// get all unread notifications
    -    async fn get_all_unread_notifications(
    -        &self,
    -        username: &str,
    -    ) -> DBResult<Vec<Notification>>;
    -
    -    /// mark a notification read
    -    async fn mark_notification_read(&self, username: &str, id: i32) -> DBResult<()>;
    -
    -    /// record PoWConfig fetches
    -    async fn record_fetch(&self, key: &str) -> DBResult<()>;
    -
    -    /// record PoWConfig solves
    -    async fn record_solve(&self, key: &str) -> DBResult<()>;
    -
    -    /// record PoWConfig confirms
    -    async fn record_confirm(&self, key: &str) -> DBResult<()>;
    -
    -    /// fetch PoWConfig fetches
    -    async fn fetch_config_fetched(&self, user: &str, key: &str) -> DBResult<Vec<i64>>;
    -
    -    /// fetch PoWConfig solves
    -    async fn fetch_solve(&self, user: &str, key: &str) -> DBResult<Vec<i64>>;
    -
    -    /// fetch PoWConfig confirms
    -    async fn fetch_confirm(&self, user: &str, key: &str) -> DBResult<Vec<i64>>;
    -
    -    /// record PoW timing
    -    async fn analysis_save(
    -        &self,
    -        captcha_id: &str,
    -        d: &CreatePerformanceAnalytics,
    -    ) -> DBResult<()>;
    -
    -    /// fetch PoW analytics
    -    async fn analytics_fetch(
    -        &self,
    -        captcha_id: &str,
    -        limit: usize,
    -        offset: usize,
    -    ) -> DBResult<Vec<PerformanceAnalytics>>;
    -
    -    /// Create psuedo ID against campaign ID to publish analytics
    -    async fn analytics_create_psuedo_id_if_not_exists(
    -        &self,
    -        captcha_id: &str,
    -    ) -> DBResult<()>;
    -
    -    /// Get psuedo ID from campaign ID
    -    async fn analytics_get_psuedo_id_from_capmaign_id(
    -        &self,
    -        captcha_id: &str,
    -    ) -> DBResult<String>;
    -
    -    /// Get campaign ID from psuedo ID
    -    async fn analytics_get_capmaign_id_from_psuedo_id(
    -        &self,
    -        psuedo_id: &str,
    -    ) -> DBResult<String>;
    -
    -    /// Delete all records for campaign
    -    async fn analytics_delete_all_records_for_campaign(
    -        &self,
    -        campaign_id: &str,
    -    ) -> DBResult<()>;
    -
    -    /// Get publishing status of pow analytics for captcha ID/ campaign ID
    -    async fn analytics_captcha_is_published(&self, campaign_id: &str) -> DBResult<bool> {
    -        match self
    -            .analytics_get_psuedo_id_from_capmaign_id(campaign_id)
    -            .await
    -        {
    -            Ok(_) => Ok(true),
    -            Err(errors::DBError::CaptchaNotFound) => Ok(false),
    -            Err(e) => Err(e),
    -        }
    -    }
    -
    -    /// Get all psuedo IDs
    -    async fn analytics_get_all_psuedo_ids(&self, page: usize) -> DBResult<Vec<String>>;
    -
    -    /// Track maximum nonce received against captcha levels
    -    async fn update_max_nonce_for_level(
    -        &self,
    -        captcha_key: &str,
    -        difficulty_factor: u32,
    -        latest_nonce: u32,
    -    ) -> DBResult<()>;
    -
    -    /// Get maximum nonce tracked so far for captcha levels
    -    async fn get_max_nonce_for_level(
    -        &self,
    -        captcha_key: &str,
    -        difficulty_factor: u32,
    -    ) -> DBResult<u32>;
    -
    -    /// Get number of analytics entries that are under a certain duration
    -    async fn stats_get_num_logs_under_time(&self, duration: u32) -> DBResult<usize>;
    -
    -    /// Get the entry at a location in the list of analytics entires under a certain time limit
    -    /// and sorted in ascending order
    -    async fn stats_get_entry_at_location_for_time_limit_asc(
    -        &self,
    -        duration: u32,
    -        location: u32,
    -    ) -> DBResult<Option<usize>>;
    -}
    -
    -#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    -/// Log Proof-of-Work CAPTCHA performance analytics
    -pub struct CreatePerformanceAnalytics {
    -    /// time taken to generate proof
    -    pub time: u32,
    -    /// difficulty factor for which the proof was generated
    -    pub difficulty_factor: u32,
    -    /// worker/client type: wasm, javascript, python, etc.
    -    pub worker_type: String,
    -}
    -
    -#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    -/// Proof-of-Work CAPTCHA performance analytics
    -pub struct PerformanceAnalytics {
    -    /// log ID
    -    pub id: usize,
    -    /// time taken to generate proof
    -    pub time: u32,
    -    /// difficulty factor for which the proof was generated
    -    pub difficulty_factor: u32,
    -    /// worker/client type: wasm, javascript, python, etc.
    -    pub worker_type: String,
    -}
    -
    -#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    -/// Captcha statistics with time recorded in UNIX epoch formats
    -pub struct StatsUnixTimestamp {
    -    /// times at which the configuration were fetched
    -    pub config_fetches: Vec<i64>,
    -    /// times at which the PoW was solved
    -    pub solves: Vec<i64>,
    -    /// times at which the PoW token was verified
    -    pub confirms: Vec<i64>,
    -}
    -
    -#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    -/// Represents notification
    -pub struct Notification {
    -    /// receiver name  of the notification
    -    pub name: Option<String>,
    -    /// heading of the notification
    -    pub heading: Option<String>,
    -    /// message of the notification
    -    pub message: Option<String>,
    -    /// when notification was received
    -    pub received: Option<i64>,
    -    /// db assigned ID of the notification
    -    pub id: Option<i32>,
    -}
    -
    -#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
    -/// Data required to add notification
    -pub struct AddNotification<'a> {
    -    /// who is the notification addressed to?
    -    pub to: &'a str,
    -    /// notification sender
    -    pub from: &'a str,
    -    /// heading of the notification
    -    pub heading: &'a str,
    -    /// message of the notification
    -    pub message: &'a str,
    -}
    -
    -#[derive(Default, PartialEq, Serialize, Deserialize, Clone, Debug)]
    -/// Represents Easy captcha configuration
    -pub struct EasyCaptcha {
    -    /// traffic pattern of easy captcha
    -    pub traffic_pattern: TrafficPattern,
    -    /// captcha key/sitekey
    -    pub key: String,
    -    /// captcha description
    -    pub description: String,
    -    /// Owner of the captcha configuration
    -    pub username: String,
    -}
    -
    -#[derive(Default, PartialEq, Serialize, Deserialize, Clone, Debug)]
    -/// User's traffic pattern; used in generating a captcha configuration
    -pub struct TrafficPattern {
    -    /// average traffic of user's website
    -    pub avg_traffic: u32,
    -    /// the peak traffic that the user's website can handle
    -    pub peak_sustainable_traffic: u32,
    -    /// traffic that bought the user's website down; optional
    -    pub broke_my_site_traffic: Option<u32>,
    -}
    -
    -#[derive(Clone, Debug, Default, PartialEq, Deserialize, Serialize)]
    -/// data required to create new captcha
    -pub struct CreateCaptcha<'a> {
    -    /// cool down duration
    -    pub duration: i32,
    -    /// description of the captcha
    -    pub description: &'a str,
    -    /// secret key of the captcha
    -    pub key: &'a str,
    -}
    -
    -#[derive(Clone, Debug, Default, PartialEq, Deserialize, Serialize)]
    -/// Data representing a captcha
    -pub struct Captcha {
    -    /// Database assigned ID
    -    pub config_id: i32,
    -    /// cool down duration
    -    pub duration: i32,
    -    /// description of the captcha
    -    pub description: String,
    -    /// secret key of the captcha
    -    pub key: String,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, PartialEq, Default, Serialize)]
    -/// datastructure representing a user's secret
    -pub struct Secret {
    -    /// user's secret
    -    pub secret: String,
    -}
    -/// Trait to clone MCDatabase
    -pub trait CloneSPDatabase {
    -    /// clone DB
    -    fn clone_db(&self) -> Box<dyn MCDatabase>;
    -}
    -
    -impl<T> CloneSPDatabase for T
    -where
    -    T: MCDatabase + Clone + 'static,
    -{
    -    fn clone_db(&self) -> Box<dyn MCDatabase> {
    -        Box::new(self.clone())
    -    }
    -}
    -
    -impl Clone for Box<dyn MCDatabase> {
    -    fn clone(&self) -> Self {
    -        (**self).clone_db()
    -    }
    -}
    -
    \ No newline at end of file +lib.rs - source

    db_core/
    lib.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6#![warn(missing_docs)]
    +7//! # `mCaptcha` database operations
    +8//!
    +9//! Traits and datastructures used in mCaptcha to interact with database.
    +10//!
    +11//! To use an unsupported database with mCaptcha, traits present within this crate should be
    +12//! implemented.
    +13//!
    +14//!
    +15//! ## Organisation
    +16//!
    +17//! Database functionality is divided across various modules:
    +18//!
    +19//! - [errors](crate::auth): error data structures used in this crate
    +20//! - [ops](crate::ops): meta operations like connection pool creation, migrations and getting
    +21//! connection from pool
    +22use serde::{Deserialize, Serialize};
    +23
    +24pub use libmcaptcha::defense::Level;
    +25
    +26pub mod errors;
    +27pub mod ops;
    +28#[cfg(feature = "test")]
    +29pub mod tests;
    +30
    +31use dev::*;
    +32pub use ops::GetConnection;
    +33
    +34pub mod prelude {
    +35    //! useful imports for users working with a supported database
    +36
    +37    pub use super::errors::*;
    +38    pub use super::ops::*;
    +39    pub use super::*;
    +40}
    +41
    +42pub mod dev {
    +43    //! useful imports for supporting a new database
    +44    pub use super::prelude::*;
    +45    pub use async_trait::async_trait;
    +46}
    +47
    +48#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    +49/// Data required to register a new user
    +50pub struct Register<'a> {
    +51    /// username of new user
    +52    pub username: &'a str,
    +53    /// secret of new user
    +54    pub secret: &'a str,
    +55    /// hashed password of new use
    +56    pub hash: &'a str,
    +57    /// Optionally, email of new use
    +58    pub email: Option<&'a str>,
    +59}
    +60
    +61#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    +62/// data required to update them email of a user
    +63pub struct UpdateEmail<'a> {
    +64    /// username of the user
    +65    pub username: &'a str,
    +66    /// new email address of the user
    +67    pub new_email: &'a str,
    +68}
    +69
    +70#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    +71/// types of credentials used as identifiers during login
    +72pub enum Login<'a> {
    +73    /// username as login
    +74    Username(&'a str),
    +75    /// email as login
    +76    Email(&'a str),
    +77}
    +78
    +79#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
    +80/// type encapsulating username and hashed password of a user
    +81pub struct NameHash {
    +82    /// username
    +83    pub username: String,
    +84    /// hashed password
    +85    pub hash: String,
    +86}
    +87
    +88#[async_trait]
    +89/// mCaptcha's database requirements. To implement support for $Database, kindly implement this
    +90/// trait.
    +91pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase {
    +92    /// ping DB
    +93    async fn ping(&self) -> bool;
    +94
    +95    /// register a new user
    +96    async fn register(&self, p: &Register) -> DBResult<()>;
    +97
    +98    /// delete a user
    +99    async fn delete_user(&self, username: &str) -> DBResult<()>;
    +100
    +101    /// check if username exists
    +102    async fn username_exists(&self, username: &str) -> DBResult<bool>;
    +103
    +104    /// get user email
    +105    async fn get_email(&self, username: &str) -> DBResult<Option<String>>;
    +106
    +107    /// check if email exists
    +108    async fn email_exists(&self, email: &str) -> DBResult<bool>;
    +109
    +110    /// update a user's email
    +111    async fn update_email(&self, p: &UpdateEmail) -> DBResult<()>;
    +112
    +113    /// get a user's password
    +114    async fn get_password(&self, l: &Login) -> DBResult<NameHash>;
    +115
    +116    /// update user's password
    +117    async fn update_password(&self, p: &NameHash) -> DBResult<()>;
    +118
    +119    /// update username
    +120    async fn update_username(&self, current: &str, new: &str) -> DBResult<()>;
    +121
    +122    /// get a user's secret
    +123    async fn get_secret(&self, username: &str) -> DBResult<Secret>;
    +124
    +125    /// get a user's secret from a captcha key
    +126    async fn get_secret_from_captcha(&self, key: &str) -> DBResult<Secret>;
    +127
    +128    /// update a user's secret
    +129    async fn update_secret(&self, username: &str, secret: &str) -> DBResult<()>;
    +130
    +131    /// create new captcha
    +132    async fn create_captcha(&self, username: &str, p: &CreateCaptcha) -> DBResult<()>;
    +133
    +134    /// Get captcha config
    +135    async fn get_captcha_config(&self, username: &str, key: &str) -> DBResult<Captcha>;
    +136
    +137    /// Get all captchas belonging to user
    +138    async fn get_all_user_captchas(&self, username: &str) -> DBResult<Vec<Captcha>>;
    +139
    +140    /// update captcha metadata; doesn't change captcha key
    +141    async fn update_captcha_metadata(
    +142        &self,
    +143        username: &str,
    +144        p: &CreateCaptcha,
    +145    ) -> DBResult<()>;
    +146
    +147    /// update captcha key; doesn't change metadata
    +148    async fn update_captcha_key(
    +149        &self,
    +150        username: &str,
    +151        old_key: &str,
    +152        new_key: &str,
    +153    ) -> DBResult<()>;
    +154
    +155    /// Add levels to captcha
    +156    async fn add_captcha_levels(
    +157        &self,
    +158        username: &str,
    +159        captcha_key: &str,
    +160        levels: &[Level],
    +161    ) -> DBResult<()>;
    +162
    +163    /// check if captcha exists
    +164    async fn captcha_exists(
    +165        &self,
    +166        username: Option<&str>,
    +167        captcha_key: &str,
    +168    ) -> DBResult<bool>;
    +169
    +170    /// Delete all levels of a captcha
    +171    async fn delete_captcha_levels(
    +172        &self,
    +173        username: &str,
    +174        captcha_key: &str,
    +175    ) -> DBResult<()>;
    +176
    +177    /// Delete captcha
    +178    async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()>;
    +179
    +180    /// Get captcha levels
    +181    async fn get_captcha_levels(
    +182        &self,
    +183        username: Option<&str>,
    +184        captcha_key: &str,
    +185    ) -> DBResult<Vec<Level>>;
    +186
    +187    /// Get captcha's cooldown period
    +188    async fn get_captcha_cooldown(&self, captcha_key: &str) -> DBResult<i32>;
    +189
    +190    /// Add traffic configuration
    +191    async fn add_traffic_pattern(
    +192        &self,
    +193        username: &str,
    +194        captcha_key: &str,
    +195        pattern: &TrafficPattern,
    +196    ) -> DBResult<()>;
    +197
    +198    /// Get traffic configuration
    +199    async fn get_traffic_pattern(
    +200        &self,
    +201        username: &str,
    +202        captcha_key: &str,
    +203    ) -> DBResult<TrafficPattern>;
    +204
    +205    /// Get all easy captcha configurations on instance
    +206    async fn get_all_easy_captchas(
    +207        &self,
    +208        limit: usize,
    +209        offset: usize,
    +210    ) -> DBResult<Vec<EasyCaptcha>>;
    +211
    +212    /// Delete traffic configuration
    +213    async fn delete_traffic_pattern(
    +214        &self,
    +215        username: &str,
    +216        captcha_key: &str,
    +217    ) -> DBResult<()>;
    +218
    +219    /// create new notification
    +220    async fn create_notification(&self, p: &AddNotification) -> DBResult<()>;
    +221
    +222    /// get all unread notifications
    +223    async fn get_all_unread_notifications(
    +224        &self,
    +225        username: &str,
    +226    ) -> DBResult<Vec<Notification>>;
    +227
    +228    /// mark a notification read
    +229    async fn mark_notification_read(&self, username: &str, id: i32) -> DBResult<()>;
    +230
    +231    /// record PoWConfig fetches
    +232    async fn record_fetch(&self, key: &str) -> DBResult<()>;
    +233
    +234    /// record PoWConfig solves
    +235    async fn record_solve(&self, key: &str) -> DBResult<()>;
    +236
    +237    /// record PoWConfig confirms
    +238    async fn record_confirm(&self, key: &str) -> DBResult<()>;
    +239
    +240    /// fetch PoWConfig fetches
    +241    async fn fetch_config_fetched(&self, user: &str, key: &str) -> DBResult<Vec<i64>>;
    +242
    +243    /// fetch PoWConfig solves
    +244    async fn fetch_solve(&self, user: &str, key: &str) -> DBResult<Vec<i64>>;
    +245
    +246    /// fetch PoWConfig confirms
    +247    async fn fetch_confirm(&self, user: &str, key: &str) -> DBResult<Vec<i64>>;
    +248
    +249    /// record PoW timing
    +250    async fn analysis_save(
    +251        &self,
    +252        captcha_id: &str,
    +253        d: &CreatePerformanceAnalytics,
    +254    ) -> DBResult<()>;
    +255
    +256    /// fetch PoW analytics
    +257    async fn analytics_fetch(
    +258        &self,
    +259        captcha_id: &str,
    +260        limit: usize,
    +261        offset: usize,
    +262    ) -> DBResult<Vec<PerformanceAnalytics>>;
    +263
    +264    /// Create psuedo ID against campaign ID to publish analytics
    +265    async fn analytics_create_psuedo_id_if_not_exists(
    +266        &self,
    +267        captcha_id: &str,
    +268    ) -> DBResult<()>;
    +269
    +270    /// Get psuedo ID from campaign ID
    +271    async fn analytics_get_psuedo_id_from_capmaign_id(
    +272        &self,
    +273        captcha_id: &str,
    +274    ) -> DBResult<String>;
    +275
    +276    /// Get campaign ID from psuedo ID
    +277    async fn analytics_get_capmaign_id_from_psuedo_id(
    +278        &self,
    +279        psuedo_id: &str,
    +280    ) -> DBResult<String>;
    +281
    +282    /// Delete all records for campaign
    +283    async fn analytics_delete_all_records_for_campaign(
    +284        &self,
    +285        campaign_id: &str,
    +286    ) -> DBResult<()>;
    +287
    +288    /// Get publishing status of pow analytics for captcha ID/ campaign ID
    +289    async fn analytics_captcha_is_published(&self, campaign_id: &str) -> DBResult<bool> {
    +290        match self
    +291            .analytics_get_psuedo_id_from_capmaign_id(campaign_id)
    +292            .await
    +293        {
    +294            Ok(_) => Ok(true),
    +295            Err(errors::DBError::CaptchaNotFound) => Ok(false),
    +296            Err(e) => Err(e),
    +297        }
    +298    }
    +299
    +300    /// Get all psuedo IDs
    +301    async fn analytics_get_all_psuedo_ids(&self, page: usize) -> DBResult<Vec<String>>;
    +302
    +303    /// Track maximum nonce received against captcha levels
    +304    async fn update_max_nonce_for_level(
    +305        &self,
    +306        captcha_key: &str,
    +307        difficulty_factor: u32,
    +308        latest_nonce: u32,
    +309    ) -> DBResult<()>;
    +310
    +311    /// Get maximum nonce tracked so far for captcha levels
    +312    async fn get_max_nonce_for_level(
    +313        &self,
    +314        captcha_key: &str,
    +315        difficulty_factor: u32,
    +316    ) -> DBResult<u32>;
    +317
    +318    /// Get number of analytics entries that are under a certain duration
    +319    async fn stats_get_num_logs_under_time(&self, duration: u32) -> DBResult<usize>;
    +320
    +321    /// Get the entry at a location in the list of analytics entires under a certain time limit
    +322    /// and sorted in ascending order
    +323    async fn stats_get_entry_at_location_for_time_limit_asc(
    +324        &self,
    +325        duration: u32,
    +326        location: u32,
    +327    ) -> DBResult<Option<usize>>;
    +328}
    +329
    +330#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    +331/// Log Proof-of-Work CAPTCHA performance analytics
    +332pub struct CreatePerformanceAnalytics {
    +333    /// time taken to generate proof
    +334    pub time: u32,
    +335    /// difficulty factor for which the proof was generated
    +336    pub difficulty_factor: u32,
    +337    /// worker/client type: wasm, javascript, python, etc.
    +338    pub worker_type: String,
    +339}
    +340
    +341#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    +342/// Proof-of-Work CAPTCHA performance analytics
    +343pub struct PerformanceAnalytics {
    +344    /// log ID
    +345    pub id: usize,
    +346    /// time taken to generate proof
    +347    pub time: u32,
    +348    /// difficulty factor for which the proof was generated
    +349    pub difficulty_factor: u32,
    +350    /// worker/client type: wasm, javascript, python, etc.
    +351    pub worker_type: String,
    +352}
    +353
    +354#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    +355/// Captcha statistics with time recorded in UNIX epoch formats
    +356pub struct StatsUnixTimestamp {
    +357    /// times at which the configuration were fetched
    +358    pub config_fetches: Vec<i64>,
    +359    /// times at which the PoW was solved
    +360    pub solves: Vec<i64>,
    +361    /// times at which the PoW token was verified
    +362    pub confirms: Vec<i64>,
    +363}
    +364
    +365#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)]
    +366/// Represents notification
    +367pub struct Notification {
    +368    /// receiver name  of the notification
    +369    pub name: Option<String>,
    +370    /// heading of the notification
    +371    pub heading: Option<String>,
    +372    /// message of the notification
    +373    pub message: Option<String>,
    +374    /// when notification was received
    +375    pub received: Option<i64>,
    +376    /// db assigned ID of the notification
    +377    pub id: Option<i32>,
    +378}
    +379
    +380#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
    +381/// Data required to add notification
    +382pub struct AddNotification<'a> {
    +383    /// who is the notification addressed to?
    +384    pub to: &'a str,
    +385    /// notification sender
    +386    pub from: &'a str,
    +387    /// heading of the notification
    +388    pub heading: &'a str,
    +389    /// message of the notification
    +390    pub message: &'a str,
    +391}
    +392
    +393#[derive(Default, PartialEq, Serialize, Deserialize, Clone, Debug)]
    +394/// Represents Easy captcha configuration
    +395pub struct EasyCaptcha {
    +396    /// traffic pattern of easy captcha
    +397    pub traffic_pattern: TrafficPattern,
    +398    /// captcha key/sitekey
    +399    pub key: String,
    +400    /// captcha description
    +401    pub description: String,
    +402    /// Owner of the captcha configuration
    +403    pub username: String,
    +404}
    +405
    +406#[derive(Default, PartialEq, Serialize, Deserialize, Clone, Debug)]
    +407/// User's traffic pattern; used in generating a captcha configuration
    +408pub struct TrafficPattern {
    +409    /// average traffic of user's website
    +410    pub avg_traffic: u32,
    +411    /// the peak traffic that the user's website can handle
    +412    pub peak_sustainable_traffic: u32,
    +413    /// traffic that bought the user's website down; optional
    +414    pub broke_my_site_traffic: Option<u32>,
    +415}
    +416
    +417#[derive(Clone, Debug, Default, PartialEq, Deserialize, Serialize)]
    +418/// data required to create new captcha
    +419pub struct CreateCaptcha<'a> {
    +420    /// cool down duration
    +421    pub duration: i32,
    +422    /// description of the captcha
    +423    pub description: &'a str,
    +424    /// secret key of the captcha
    +425    pub key: &'a str,
    +426}
    +427
    +428#[derive(Clone, Debug, Default, PartialEq, Deserialize, Serialize)]
    +429/// Data representing a captcha
    +430pub struct Captcha {
    +431    /// Database assigned ID
    +432    pub config_id: i32,
    +433    /// cool down duration
    +434    pub duration: i32,
    +435    /// description of the captcha
    +436    pub description: String,
    +437    /// secret key of the captcha
    +438    pub key: String,
    +439}
    +440
    +441#[derive(Clone, Debug, Deserialize, PartialEq, Default, Serialize)]
    +442/// datastructure representing a user's secret
    +443pub struct Secret {
    +444    /// user's secret
    +445    pub secret: String,
    +446}
    +447/// Trait to clone MCDatabase
    +448pub trait CloneSPDatabase {
    +449    /// clone DB
    +450    fn clone_db(&self) -> Box<dyn MCDatabase>;
    +451}
    +452
    +453impl<T> CloneSPDatabase for T
    +454where
    +455    T: MCDatabase + Clone + 'static,
    +456{
    +457    fn clone_db(&self) -> Box<dyn MCDatabase> {
    +458        Box::new(self.clone())
    +459    }
    +460}
    +461
    +462impl Clone for Box<dyn MCDatabase> {
    +463    fn clone(&self) -> Self {
    +464        (**self).clone_db()
    +465    }
    +466}
    \ No newline at end of file diff --git a/src/db_core/ops.rs.html b/src/db_core/ops.rs.html index 61554005..d5eabab5 100644 --- a/src/db_core/ops.rs.html +++ b/src/db_core/ops.rs.html @@ -1,79 +1,38 @@ -ops.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! meta operations like migration and connecting to a database
    -use crate::dev::*;
    -
    -/// Database operations trait(migrations, pool creation and fetching connection from pool)
    -pub trait DBOps: GetConnection + Migrate {}
    -
    -/// Get database connection
    -#[async_trait]
    -pub trait GetConnection {
    -    /// database connection type
    -    type Conn;
    -    /// database specific error-type
    -    /// get connection from connection pool
    -    async fn get_conn(&self) -> DBResult<Self::Conn>;
    -}
    -
    -/// Create database connection
    -#[async_trait]
    -pub trait Connect {
    -    /// database specific pool-type
    -    type Pool: MCDatabase;
    -    /// database specific error-type
    -    /// create connection pool
    -    async fn connect(self) -> DBResult<Self::Pool>;
    -}
    -
    -/// database migrations
    -#[async_trait]
    -pub trait Migrate: MCDatabase {
    -    /// database specific error-type
    -    /// run migrations
    -    async fn migrate(&self) -> DBResult<()>;
    -}
    -
    \ No newline at end of file +ops.rs - source

    db_core/
    ops.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! meta operations like migration and connecting to a database
    +7use crate::dev::*;
    +8
    +9/// Database operations trait(migrations, pool creation and fetching connection from pool)
    +10pub trait DBOps: GetConnection + Migrate {}
    +11
    +12/// Get database connection
    +13#[async_trait]
    +14pub trait GetConnection {
    +15    /// database connection type
    +16    type Conn;
    +17    /// database specific error-type
    +18    /// get connection from connection pool
    +19    async fn get_conn(&self) -> DBResult<Self::Conn>;
    +20}
    +21
    +22/// Create database connection
    +23#[async_trait]
    +24pub trait Connect {
    +25    /// database specific pool-type
    +26    type Pool: MCDatabase;
    +27    /// database specific error-type
    +28    /// create connection pool
    +29    async fn connect(self) -> DBResult<Self::Pool>;
    +30}
    +31
    +32/// database migrations
    +33#[async_trait]
    +34pub trait Migrate: MCDatabase {
    +35    /// database specific error-type
    +36    /// run migrations
    +37    async fn migrate(&self) -> DBResult<()>;
    +38}
    \ No newline at end of file diff --git a/src/db_core/tests.rs.html b/src/db_core/tests.rs.html index 7c154be6..80d31a82 100644 --- a/src/db_core/tests.rs.html +++ b/src/db_core/tests.rs.html @@ -1,935 +1,466 @@ -tests.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    -400
    -401
    -402
    -403
    -404
    -405
    -406
    -407
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    -424
    -425
    -426
    -427
    -428
    -429
    -430
    -431
    -432
    -433
    -434
    -435
    -436
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    -464
    -465
    -466
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! Test utilities
    -use crate::errors::*;
    -use crate::prelude::*;
    -
    -/// easy traffic pattern
    -pub const TRAFFIC_PATTERN: TrafficPattern = TrafficPattern {
    -    avg_traffic: 500,
    -    peak_sustainable_traffic: 5_000,
    -    broke_my_site_traffic: Some(10_000),
    -};
    -
    -/// levels for complex captcha config
    -pub const LEVELS: [Level; 3] = [
    -    Level {
    -        difficulty_factor: 1,
    -        visitor_threshold: 1,
    -    },
    -    Level {
    -        difficulty_factor: 2,
    -        visitor_threshold: 2,
    -    },
    -    Level {
    -        difficulty_factor: 3,
    -        visitor_threshold: 3,
    -    },
    -];
    -
    -/// test all database functions
    -pub async fn database_works<'a, T: MCDatabase>(
    -    db: &T,
    -    p: &Register<'a>,
    -    c: &CreateCaptcha<'a>,
    -    l: &[Level],
    -    tp: &TrafficPattern,
    -    an: &AddNotification<'a>,
    -) {
    -    assert!(db.ping().await, "ping test");
    -
    -    if db.username_exists(p.username).await.unwrap() {
    -        db.delete_user(p.username).await.unwrap();
    -        assert!(
    -            !db.username_exists(p.username).await.unwrap(),
    -            "user is deleted so username shouldn't exist"
    -        );
    -    }
    -
    -    assert!(matches!(
    -        db.get_secret(&p.username).await,
    -        Err(DBError::AccountNotFound)
    -    ));
    -
    -    db.register(p).await.unwrap();
    -
    -    assert!(matches!(db.register(&p).await, Err(DBError::UsernameTaken)));
    -
    -    // testing get secret
    -    let secret = db.get_secret(p.username).await.unwrap();
    -    assert_eq!(secret.secret, p.secret, "user secret matches");
    -
    -    // testing update secret: setting secret = username
    -    db.update_secret(p.username, p.username).await.unwrap();
    -
    -    let secret = db.get_secret(p.username).await.unwrap();
    -    assert_eq!(
    -        secret.secret, p.username,
    -        "user secret matches username; as set by previous step"
    -    );
    -
    -    // testing get_password
    -
    -    // with username
    -    let name_hash = db.get_password(&Login::Username(p.username)).await.unwrap();
    -    assert_eq!(name_hash.hash, p.hash, "user password matches");
    -
    -    assert_eq!(name_hash.username, p.username, "username matches");
    -
    -    // with email
    -    let mut name_hash = db
    -        .get_password(&Login::Email(p.email.as_ref().unwrap()))
    -        .await
    -        .unwrap();
    -    assert_eq!(name_hash.hash, p.hash, "user password matches");
    -    assert_eq!(name_hash.username, p.username, "username matches");
    -
    -    // testing get_email
    -    assert_eq!(
    -        db.get_email(p.username)
    -            .await
    -            .unwrap()
    -            .as_ref()
    -            .unwrap()
    -            .as_str(),
    -        p.email.unwrap()
    -    );
    -
    -    // testing email exists
    -    assert!(
    -        db.email_exists(p.email.as_ref().unwrap()).await.unwrap(),
    -        "user is registered so email should exist"
    -    );
    -    assert!(
    -        db.username_exists(p.username).await.unwrap(),
    -        "user is registered so username should exist"
    -    );
    -
    -    // update password test. setting password = username
    -    name_hash.hash = name_hash.username.clone();
    -    db.update_password(&name_hash).await.unwrap();
    -
    -    let name_hash = db.get_password(&Login::Username(p.username)).await.unwrap();
    -    assert_eq!(
    -        name_hash.hash, p.username,
    -        "user password matches with changed value"
    -    );
    -    assert_eq!(name_hash.username, p.username, "username matches");
    -
    -    // update username to p.email
    -    assert!(
    -        !db.username_exists(p.email.as_ref().unwrap()).await.unwrap(),
    -        "user with p.email doesn't exist. pre-check to update username to p.email"
    -    );
    -    db.update_username(p.username, p.email.as_ref().unwrap())
    -        .await
    -        .unwrap();
    -    assert!(
    -        db.username_exists(p.email.as_ref().unwrap()).await.unwrap(),
    -        "user with p.email exist post-update"
    -    );
    -
    -    // deleting user for re-registration with email = None
    -    db.delete_user(p.email.as_ref().unwrap()).await.unwrap();
    -    assert!(
    -        !db.username_exists(p.email.as_ref().unwrap()).await.unwrap(),
    -        "user is deleted so username shouldn't exist"
    -    );
    -
    -    // register with email = None
    -    let mut p2 = p.clone();
    -    p2.email = None;
    -    db.register(&p2).await.unwrap();
    -    assert!(
    -        db.username_exists(p2.username).await.unwrap(),
    -        "user is registered so username should exist"
    -    );
    -    assert!(
    -        !db.email_exists(p.email.as_ref().unwrap()).await.unwrap(),
    -        "user registration with email is deleted; so email shouldn't exist"
    -    );
    -
    -    // testing get_email = None
    -    assert_eq!(db.get_email(p.username).await.unwrap(), None);
    -
    -    // testing update email
    -    let update_email = UpdateEmail {
    -        username: p.username,
    -        new_email: p.email.as_ref().unwrap(),
    -    };
    -    db.update_email(&update_email).await.unwrap();
    -    println!(
    -        "null user email: {}",
    -        db.email_exists(p.email.as_ref().unwrap()).await.unwrap()
    -    );
    -    assert!(
    -        db.email_exists(p.email.as_ref().unwrap()).await.unwrap(),
    -        "user was with empty email but email is set; so email should exist"
    -    );
    -
    -    /*
    -     * test notification workflows
    -     * 1. Add notifications: a minimum of two, to mark as read and test if it has affected it
    -     * 2. Get unread notifications
    -     * 3. Mark a notification read, check if it has affected Step #2
    -     */
    -
    -    // 1. add notification
    -    db.create_notification(an).await.unwrap();
    -    db.create_notification(an).await.unwrap();
    -
    -    // 2. Get notifications
    -    let notifications = db.get_all_unread_notifications(an.to).await.unwrap();
    -    assert_eq!(notifications.len(), 2);
    -    assert_eq!(notifications[0].heading.as_ref().unwrap(), an.heading);
    -
    -    // 3. mark a notification read
    -    db.mark_notification_read(an.to, notifications[0].id.unwrap())
    -        .await
    -        .unwrap();
    -    let new_notifications = db.get_all_unread_notifications(an.to).await.unwrap();
    -    assert_eq!(new_notifications.len(), 1);
    -
    -    // create captcha
    -    db.create_captcha(p.username, c).await.unwrap();
    -    assert!(db.captcha_exists(None, c.key).await.unwrap());
    -    assert!(db.captcha_exists(Some(p.username), c.key).await.unwrap());
    -
    -    // get secret from captcha key
    -    let secret_from_captcha = db.get_secret_from_captcha(&c.key).await.unwrap();
    -    assert_eq!(secret_from_captcha.secret, p.secret, "user secret matches");
    -
    -    // get captcha configuration
    -    let captcha = db.get_captcha_config(p.username, c.key).await.unwrap();
    -    assert_eq!(captcha.key, c.key);
    -    assert_eq!(captcha.duration, c.duration);
    -    assert_eq!(captcha.description, c.description);
    -
    -    // get all captchas that belong to user
    -    let all_user_captchas = db.get_all_user_captchas(p.username).await.unwrap();
    -    assert_eq!(all_user_captchas.len(), 1);
    -    assert_eq!(all_user_captchas[0], captcha);
    -
    -    // get captcha cooldown duration
    -    assert_eq!(db.get_captcha_cooldown(c.key).await.unwrap(), c.duration);
    -
    -    // add traffic pattern
    -    db.add_traffic_pattern(p.username, c.key, tp).await.unwrap();
    -    assert_eq!(
    -        &db.get_traffic_pattern(p.username, c.key).await.unwrap(),
    -        tp
    -    );
    -
    -    // get all traffic patterns
    -    let patterns = db.get_all_easy_captchas(10, 0).await.unwrap();
    -    assert_eq!(patterns.get(0).as_ref().unwrap().key, c.key);
    -    assert_eq!(&patterns.get(0).unwrap().traffic_pattern, tp);
    -
    -    // delete traffic pattern
    -    db.delete_traffic_pattern(p.username, c.key).await.unwrap();
    -    assert!(
    -        matches!(
    -            db.get_traffic_pattern(p.username, c.key).await,
    -            Err(DBError::TrafficPatternNotFound)
    -        ),
    -        "deletion successful; traffic pattern no longer exists"
    -    );
    -
    -    // add captcha levels
    -    db.add_captcha_levels(p.username, c.key, l).await.unwrap();
    -
    -    // get captcha levels with username
    -    let levels = db
    -        .get_captcha_levels(Some(p.username), c.key)
    -        .await
    -        .unwrap();
    -    assert_eq!(levels, l);
    -    // get captcha levels without username
    -    let levels = db.get_captcha_levels(None, c.key).await.unwrap();
    -    assert_eq!(levels, l);
    -
    -    /*
    -     * Test stats
    -     * 1. record fetch config
    -     * 2. record solve
    -     * 3. record token verify
    -     * 4. fetch config fetches
    -     * 5. fetch solves
    -     * 6. fetch token verify
    -     */
    -
    -    assert!(db
    -        .fetch_config_fetched(p.username, c.key)
    -        .await
    -        .unwrap()
    -        .is_empty());
    -    assert!(db.fetch_solve(p.username, c.key).await.unwrap().is_empty());
    -    assert!(db
    -        .fetch_confirm(p.username, c.key)
    -        .await
    -        .unwrap()
    -        .is_empty());
    -
    -    db.record_fetch(c.key).await.unwrap();
    -    db.record_solve(c.key).await.unwrap();
    -    db.record_confirm(c.key).await.unwrap();
    -
    -    // analytics start
    -    db.analytics_create_psuedo_id_if_not_exists(c.key)
    -        .await
    -        .unwrap();
    -    let psuedo_id = db
    -        .analytics_get_psuedo_id_from_capmaign_id(c.key)
    -        .await
    -        .unwrap();
    -    assert_eq!(
    -        vec![psuedo_id.clone()],
    -        db.analytics_get_all_psuedo_ids(0).await.unwrap()
    -    );
    -    assert!(db.analytics_get_all_psuedo_ids(1).await.unwrap().is_empty());
    -
    -    db.analytics_create_psuedo_id_if_not_exists(c.key)
    -        .await
    -        .unwrap();
    -    assert_eq!(
    -        psuedo_id,
    -        db.analytics_get_psuedo_id_from_capmaign_id(c.key)
    -            .await
    -            .unwrap()
    -    );
    -
    -    assert_eq!(
    -        c.key,
    -        db.analytics_get_capmaign_id_from_psuedo_id(&psuedo_id)
    -            .await
    -            .unwrap()
    -    );
    -
    -    let analytics = CreatePerformanceAnalytics {
    -        time: 1,
    -        difficulty_factor: 1,
    -        worker_type: "wasm".into(),
    -    };
    -
    -    assert_eq!(
    -        db.stats_get_num_logs_under_time(analytics.time)
    -            .await
    -            .unwrap(),
    -        0
    -    );
    -
    -    db.analysis_save(c.key, &analytics).await.unwrap();
    -    assert_eq!(
    -        db.stats_get_num_logs_under_time(analytics.time)
    -            .await
    -            .unwrap(),
    -        1
    -    );
    -    assert_eq!(
    -        db.stats_get_num_logs_under_time(analytics.time - 1)
    -            .await
    -            .unwrap(),
    -        0
    -    );
    -    let limit = 50;
    -    let mut offset = 0;
    -    let a = db.analytics_fetch(c.key, limit, offset).await.unwrap();
    -    assert_eq!(a[0].time, analytics.time);
    -    assert_eq!(a[0].difficulty_factor, analytics.difficulty_factor);
    -    assert_eq!(a[0].worker_type, analytics.worker_type);
    -    offset += 1;
    -    assert!(db
    -        .analytics_fetch(c.key, limit, offset)
    -        .await
    -        .unwrap()
    -        .is_empty());
    -
    -    db.analytics_delete_all_records_for_campaign(c.key)
    -        .await
    -        .unwrap();
    -    assert_eq!(db.analytics_fetch(c.key, 1000, 0).await.unwrap().len(), 0);
    -    assert!(!db.analytics_captcha_is_published(c.key).await.unwrap());
    -
    -    let rest_analytics = [
    -        CreatePerformanceAnalytics {
    -            time: 2,
    -            difficulty_factor: 2,
    -            worker_type: "wasm".into(),
    -        },
    -        CreatePerformanceAnalytics {
    -            time: 3,
    -            difficulty_factor: 3,
    -            worker_type: "wasm".into(),
    -        },
    -        CreatePerformanceAnalytics {
    -            time: 4,
    -            difficulty_factor: 4,
    -            worker_type: "wasm".into(),
    -        },
    -        CreatePerformanceAnalytics {
    -            time: 5,
    -            difficulty_factor: 5,
    -            worker_type: "wasm".into(),
    -        },
    -    ];
    -    for a in rest_analytics.iter() {
    -        db.analysis_save(c.key, &a).await.unwrap();
    -    }
    -    assert!(db
    -        .stats_get_entry_at_location_for_time_limit_asc(1, 2)
    -        .await
    -        .unwrap()
    -        .is_none());
    -    assert_eq!(
    -        db.stats_get_entry_at_location_for_time_limit_asc(2, 1)
    -            .await
    -            .unwrap(),
    -        Some(2)
    -    );
    -    assert_eq!(
    -        db.stats_get_entry_at_location_for_time_limit_asc(3, 2)
    -            .await
    -            .unwrap(),
    -        Some(3)
    -    );
    -
    -    db.analytics_delete_all_records_for_campaign(c.key)
    -        .await
    -        .unwrap();
    -    // analytics end
    -
    -    // nonce tracking start
    -    assert_eq!(
    -        db.get_max_nonce_for_level(c.key, l[0].difficulty_factor)
    -            .await
    -            .unwrap(),
    -        0
    -    );
    -    db.update_max_nonce_for_level(c.key, l[0].difficulty_factor, 1000)
    -        .await
    -        .unwrap();
    -    assert_eq!(
    -        db.get_max_nonce_for_level(c.key, l[0].difficulty_factor)
    -            .await
    -            .unwrap(),
    -        1000
    -    );
    -    db.update_max_nonce_for_level(c.key, l[0].difficulty_factor, 10_000)
    -        .await
    -        .unwrap();
    -    assert_eq!(
    -        db.get_max_nonce_for_level(c.key, l[0].difficulty_factor)
    -            .await
    -            .unwrap(),
    -        10_000
    -    );
    -    // nonce tracking end
    -
    -    assert_eq!(db.fetch_solve(p.username, c.key).await.unwrap().len(), 1);
    -    assert_eq!(
    -        db.fetch_config_fetched(p.username, c.key)
    -            .await
    -            .unwrap()
    -            .len(),
    -        1
    -    );
    -    assert_eq!(db.fetch_solve(p.username, c.key).await.unwrap().len(), 1);
    -    assert_eq!(db.fetch_confirm(p.username, c.key).await.unwrap().len(), 1);
    -
    -    // update captcha key; set key = username;
    -    db.update_captcha_key(p.username, c.key, p.username)
    -        .await
    -        .unwrap();
    -    // checking for captcha with old key; shouldn't exist
    -    assert!(!db.captcha_exists(Some(p.username), c.key).await.unwrap());
    -    // checking for captcha with new key; shouldn exist
    -    assert!(db
    -        .captcha_exists(Some(p.username), p.username)
    -        .await
    -        .unwrap());
    -
    -    // delete captcha levels
    -    db.delete_captcha_levels(p.username, c.key).await.unwrap();
    -
    -    // update captcha; set description = username and duration *= duration;
    -    let mut c2 = c.clone();
    -    c2.duration *= c2.duration;
    -    c2.description = p.username;
    -    db.update_captcha_metadata(p.username, &c2).await.unwrap();
    -
    -    // delete captcha; updated key = p.username so invoke delete with it
    -    db.delete_captcha(p.username, p.username).await.unwrap();
    -    assert!(!db.captcha_exists(Some(p.username), c.key).await.unwrap());
    -}
    -
    \ No newline at end of file +tests.rs - source

    db_core/
    tests.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! Test utilities
    +7use crate::errors::*;
    +8use crate::prelude::*;
    +9
    +10/// easy traffic pattern
    +11pub const TRAFFIC_PATTERN: TrafficPattern = TrafficPattern {
    +12    avg_traffic: 500,
    +13    peak_sustainable_traffic: 5_000,
    +14    broke_my_site_traffic: Some(10_000),
    +15};
    +16
    +17/// levels for complex captcha config
    +18pub const LEVELS: [Level; 3] = [
    +19    Level {
    +20        difficulty_factor: 1,
    +21        visitor_threshold: 1,
    +22    },
    +23    Level {
    +24        difficulty_factor: 2,
    +25        visitor_threshold: 2,
    +26    },
    +27    Level {
    +28        difficulty_factor: 3,
    +29        visitor_threshold: 3,
    +30    },
    +31];
    +32
    +33/// test all database functions
    +34pub async fn database_works<'a, T: MCDatabase>(
    +35    db: &T,
    +36    p: &Register<'a>,
    +37    c: &CreateCaptcha<'a>,
    +38    l: &[Level],
    +39    tp: &TrafficPattern,
    +40    an: &AddNotification<'a>,
    +41) {
    +42    assert!(db.ping().await, "ping test");
    +43
    +44    if db.username_exists(p.username).await.unwrap() {
    +45        db.delete_user(p.username).await.unwrap();
    +46        assert!(
    +47            !db.username_exists(p.username).await.unwrap(),
    +48            "user is deleted so username shouldn't exist"
    +49        );
    +50    }
    +51
    +52    assert!(matches!(
    +53        db.get_secret(&p.username).await,
    +54        Err(DBError::AccountNotFound)
    +55    ));
    +56
    +57    db.register(p).await.unwrap();
    +58
    +59    assert!(matches!(db.register(&p).await, Err(DBError::UsernameTaken)));
    +60
    +61    // testing get secret
    +62    let secret = db.get_secret(p.username).await.unwrap();
    +63    assert_eq!(secret.secret, p.secret, "user secret matches");
    +64
    +65    // testing update secret: setting secret = username
    +66    db.update_secret(p.username, p.username).await.unwrap();
    +67
    +68    let secret = db.get_secret(p.username).await.unwrap();
    +69    assert_eq!(
    +70        secret.secret, p.username,
    +71        "user secret matches username; as set by previous step"
    +72    );
    +73
    +74    // testing get_password
    +75
    +76    // with username
    +77    let name_hash = db.get_password(&Login::Username(p.username)).await.unwrap();
    +78    assert_eq!(name_hash.hash, p.hash, "user password matches");
    +79
    +80    assert_eq!(name_hash.username, p.username, "username matches");
    +81
    +82    // with email
    +83    let mut name_hash = db
    +84        .get_password(&Login::Email(p.email.as_ref().unwrap()))
    +85        .await
    +86        .unwrap();
    +87    assert_eq!(name_hash.hash, p.hash, "user password matches");
    +88    assert_eq!(name_hash.username, p.username, "username matches");
    +89
    +90    // testing get_email
    +91    assert_eq!(
    +92        db.get_email(p.username)
    +93            .await
    +94            .unwrap()
    +95            .as_ref()
    +96            .unwrap()
    +97            .as_str(),
    +98        p.email.unwrap()
    +99    );
    +100
    +101    // testing email exists
    +102    assert!(
    +103        db.email_exists(p.email.as_ref().unwrap()).await.unwrap(),
    +104        "user is registered so email should exist"
    +105    );
    +106    assert!(
    +107        db.username_exists(p.username).await.unwrap(),
    +108        "user is registered so username should exist"
    +109    );
    +110
    +111    // update password test. setting password = username
    +112    name_hash.hash = name_hash.username.clone();
    +113    db.update_password(&name_hash).await.unwrap();
    +114
    +115    let name_hash = db.get_password(&Login::Username(p.username)).await.unwrap();
    +116    assert_eq!(
    +117        name_hash.hash, p.username,
    +118        "user password matches with changed value"
    +119    );
    +120    assert_eq!(name_hash.username, p.username, "username matches");
    +121
    +122    // update username to p.email
    +123    assert!(
    +124        !db.username_exists(p.email.as_ref().unwrap()).await.unwrap(),
    +125        "user with p.email doesn't exist. pre-check to update username to p.email"
    +126    );
    +127    db.update_username(p.username, p.email.as_ref().unwrap())
    +128        .await
    +129        .unwrap();
    +130    assert!(
    +131        db.username_exists(p.email.as_ref().unwrap()).await.unwrap(),
    +132        "user with p.email exist post-update"
    +133    );
    +134
    +135    // deleting user for re-registration with email = None
    +136    db.delete_user(p.email.as_ref().unwrap()).await.unwrap();
    +137    assert!(
    +138        !db.username_exists(p.email.as_ref().unwrap()).await.unwrap(),
    +139        "user is deleted so username shouldn't exist"
    +140    );
    +141
    +142    // register with email = None
    +143    let mut p2 = p.clone();
    +144    p2.email = None;
    +145    db.register(&p2).await.unwrap();
    +146    assert!(
    +147        db.username_exists(p2.username).await.unwrap(),
    +148        "user is registered so username should exist"
    +149    );
    +150    assert!(
    +151        !db.email_exists(p.email.as_ref().unwrap()).await.unwrap(),
    +152        "user registration with email is deleted; so email shouldn't exist"
    +153    );
    +154
    +155    // testing get_email = None
    +156    assert_eq!(db.get_email(p.username).await.unwrap(), None);
    +157
    +158    // testing update email
    +159    let update_email = UpdateEmail {
    +160        username: p.username,
    +161        new_email: p.email.as_ref().unwrap(),
    +162    };
    +163    db.update_email(&update_email).await.unwrap();
    +164    println!(
    +165        "null user email: {}",
    +166        db.email_exists(p.email.as_ref().unwrap()).await.unwrap()
    +167    );
    +168    assert!(
    +169        db.email_exists(p.email.as_ref().unwrap()).await.unwrap(),
    +170        "user was with empty email but email is set; so email should exist"
    +171    );
    +172
    +173    /*
    +174     * test notification workflows
    +175     * 1. Add notifications: a minimum of two, to mark as read and test if it has affected it
    +176     * 2. Get unread notifications
    +177     * 3. Mark a notification read, check if it has affected Step #2
    +178     */
    +179
    +180    // 1. add notification
    +181    db.create_notification(an).await.unwrap();
    +182    db.create_notification(an).await.unwrap();
    +183
    +184    // 2. Get notifications
    +185    let notifications = db.get_all_unread_notifications(an.to).await.unwrap();
    +186    assert_eq!(notifications.len(), 2);
    +187    assert_eq!(notifications[0].heading.as_ref().unwrap(), an.heading);
    +188
    +189    // 3. mark a notification read
    +190    db.mark_notification_read(an.to, notifications[0].id.unwrap())
    +191        .await
    +192        .unwrap();
    +193    let new_notifications = db.get_all_unread_notifications(an.to).await.unwrap();
    +194    assert_eq!(new_notifications.len(), 1);
    +195
    +196    // create captcha
    +197    db.create_captcha(p.username, c).await.unwrap();
    +198    assert!(db.captcha_exists(None, c.key).await.unwrap());
    +199    assert!(db.captcha_exists(Some(p.username), c.key).await.unwrap());
    +200
    +201    // get secret from captcha key
    +202    let secret_from_captcha = db.get_secret_from_captcha(&c.key).await.unwrap();
    +203    assert_eq!(secret_from_captcha.secret, p.secret, "user secret matches");
    +204
    +205    // get captcha configuration
    +206    let captcha = db.get_captcha_config(p.username, c.key).await.unwrap();
    +207    assert_eq!(captcha.key, c.key);
    +208    assert_eq!(captcha.duration, c.duration);
    +209    assert_eq!(captcha.description, c.description);
    +210
    +211    // get all captchas that belong to user
    +212    let all_user_captchas = db.get_all_user_captchas(p.username).await.unwrap();
    +213    assert_eq!(all_user_captchas.len(), 1);
    +214    assert_eq!(all_user_captchas[0], captcha);
    +215
    +216    // get captcha cooldown duration
    +217    assert_eq!(db.get_captcha_cooldown(c.key).await.unwrap(), c.duration);
    +218
    +219    // add traffic pattern
    +220    db.add_traffic_pattern(p.username, c.key, tp).await.unwrap();
    +221    assert_eq!(
    +222        &db.get_traffic_pattern(p.username, c.key).await.unwrap(),
    +223        tp
    +224    );
    +225
    +226    // get all traffic patterns
    +227    let patterns = db.get_all_easy_captchas(10, 0).await.unwrap();
    +228    assert_eq!(patterns.get(0).as_ref().unwrap().key, c.key);
    +229    assert_eq!(&patterns.get(0).unwrap().traffic_pattern, tp);
    +230
    +231    // delete traffic pattern
    +232    db.delete_traffic_pattern(p.username, c.key).await.unwrap();
    +233    assert!(
    +234        matches!(
    +235            db.get_traffic_pattern(p.username, c.key).await,
    +236            Err(DBError::TrafficPatternNotFound)
    +237        ),
    +238        "deletion successful; traffic pattern no longer exists"
    +239    );
    +240
    +241    // add captcha levels
    +242    db.add_captcha_levels(p.username, c.key, l).await.unwrap();
    +243
    +244    // get captcha levels with username
    +245    let levels = db
    +246        .get_captcha_levels(Some(p.username), c.key)
    +247        .await
    +248        .unwrap();
    +249    assert_eq!(levels, l);
    +250    // get captcha levels without username
    +251    let levels = db.get_captcha_levels(None, c.key).await.unwrap();
    +252    assert_eq!(levels, l);
    +253
    +254    /*
    +255     * Test stats
    +256     * 1. record fetch config
    +257     * 2. record solve
    +258     * 3. record token verify
    +259     * 4. fetch config fetches
    +260     * 5. fetch solves
    +261     * 6. fetch token verify
    +262     */
    +263
    +264    assert!(db
    +265        .fetch_config_fetched(p.username, c.key)
    +266        .await
    +267        .unwrap()
    +268        .is_empty());
    +269    assert!(db.fetch_solve(p.username, c.key).await.unwrap().is_empty());
    +270    assert!(db
    +271        .fetch_confirm(p.username, c.key)
    +272        .await
    +273        .unwrap()
    +274        .is_empty());
    +275
    +276    db.record_fetch(c.key).await.unwrap();
    +277    db.record_solve(c.key).await.unwrap();
    +278    db.record_confirm(c.key).await.unwrap();
    +279
    +280    // analytics start
    +281    db.analytics_create_psuedo_id_if_not_exists(c.key)
    +282        .await
    +283        .unwrap();
    +284    let psuedo_id = db
    +285        .analytics_get_psuedo_id_from_capmaign_id(c.key)
    +286        .await
    +287        .unwrap();
    +288    assert_eq!(
    +289        vec![psuedo_id.clone()],
    +290        db.analytics_get_all_psuedo_ids(0).await.unwrap()
    +291    );
    +292    assert!(db.analytics_get_all_psuedo_ids(1).await.unwrap().is_empty());
    +293
    +294    db.analytics_create_psuedo_id_if_not_exists(c.key)
    +295        .await
    +296        .unwrap();
    +297    assert_eq!(
    +298        psuedo_id,
    +299        db.analytics_get_psuedo_id_from_capmaign_id(c.key)
    +300            .await
    +301            .unwrap()
    +302    );
    +303
    +304    assert_eq!(
    +305        c.key,
    +306        db.analytics_get_capmaign_id_from_psuedo_id(&psuedo_id)
    +307            .await
    +308            .unwrap()
    +309    );
    +310
    +311    let analytics = CreatePerformanceAnalytics {
    +312        time: 1,
    +313        difficulty_factor: 1,
    +314        worker_type: "wasm".into(),
    +315    };
    +316
    +317    assert_eq!(
    +318        db.stats_get_num_logs_under_time(analytics.time)
    +319            .await
    +320            .unwrap(),
    +321        0
    +322    );
    +323
    +324    db.analysis_save(c.key, &analytics).await.unwrap();
    +325    assert_eq!(
    +326        db.stats_get_num_logs_under_time(analytics.time)
    +327            .await
    +328            .unwrap(),
    +329        1
    +330    );
    +331    assert_eq!(
    +332        db.stats_get_num_logs_under_time(analytics.time - 1)
    +333            .await
    +334            .unwrap(),
    +335        0
    +336    );
    +337    let limit = 50;
    +338    let mut offset = 0;
    +339    let a = db.analytics_fetch(c.key, limit, offset).await.unwrap();
    +340    assert_eq!(a[0].time, analytics.time);
    +341    assert_eq!(a[0].difficulty_factor, analytics.difficulty_factor);
    +342    assert_eq!(a[0].worker_type, analytics.worker_type);
    +343    offset += 1;
    +344    assert!(db
    +345        .analytics_fetch(c.key, limit, offset)
    +346        .await
    +347        .unwrap()
    +348        .is_empty());
    +349
    +350    db.analytics_delete_all_records_for_campaign(c.key)
    +351        .await
    +352        .unwrap();
    +353    assert_eq!(db.analytics_fetch(c.key, 1000, 0).await.unwrap().len(), 0);
    +354    assert!(!db.analytics_captcha_is_published(c.key).await.unwrap());
    +355
    +356    let rest_analytics = [
    +357        CreatePerformanceAnalytics {
    +358            time: 2,
    +359            difficulty_factor: 2,
    +360            worker_type: "wasm".into(),
    +361        },
    +362        CreatePerformanceAnalytics {
    +363            time: 3,
    +364            difficulty_factor: 3,
    +365            worker_type: "wasm".into(),
    +366        },
    +367        CreatePerformanceAnalytics {
    +368            time: 4,
    +369            difficulty_factor: 4,
    +370            worker_type: "wasm".into(),
    +371        },
    +372        CreatePerformanceAnalytics {
    +373            time: 5,
    +374            difficulty_factor: 5,
    +375            worker_type: "wasm".into(),
    +376        },
    +377    ];
    +378    for a in rest_analytics.iter() {
    +379        db.analysis_save(c.key, &a).await.unwrap();
    +380    }
    +381    assert!(db
    +382        .stats_get_entry_at_location_for_time_limit_asc(1, 2)
    +383        .await
    +384        .unwrap()
    +385        .is_none());
    +386    assert_eq!(
    +387        db.stats_get_entry_at_location_for_time_limit_asc(2, 1)
    +388            .await
    +389            .unwrap(),
    +390        Some(2)
    +391    );
    +392    assert_eq!(
    +393        db.stats_get_entry_at_location_for_time_limit_asc(3, 2)
    +394            .await
    +395            .unwrap(),
    +396        Some(3)
    +397    );
    +398
    +399    db.analytics_delete_all_records_for_campaign(c.key)
    +400        .await
    +401        .unwrap();
    +402    // analytics end
    +403
    +404    // nonce tracking start
    +405    assert_eq!(
    +406        db.get_max_nonce_for_level(c.key, l[0].difficulty_factor)
    +407            .await
    +408            .unwrap(),
    +409        0
    +410    );
    +411    db.update_max_nonce_for_level(c.key, l[0].difficulty_factor, 1000)
    +412        .await
    +413        .unwrap();
    +414    assert_eq!(
    +415        db.get_max_nonce_for_level(c.key, l[0].difficulty_factor)
    +416            .await
    +417            .unwrap(),
    +418        1000
    +419    );
    +420    db.update_max_nonce_for_level(c.key, l[0].difficulty_factor, 10_000)
    +421        .await
    +422        .unwrap();
    +423    assert_eq!(
    +424        db.get_max_nonce_for_level(c.key, l[0].difficulty_factor)
    +425            .await
    +426            .unwrap(),
    +427        10_000
    +428    );
    +429    // nonce tracking end
    +430
    +431    assert_eq!(db.fetch_solve(p.username, c.key).await.unwrap().len(), 1);
    +432    assert_eq!(
    +433        db.fetch_config_fetched(p.username, c.key)
    +434            .await
    +435            .unwrap()
    +436            .len(),
    +437        1
    +438    );
    +439    assert_eq!(db.fetch_solve(p.username, c.key).await.unwrap().len(), 1);
    +440    assert_eq!(db.fetch_confirm(p.username, c.key).await.unwrap().len(), 1);
    +441
    +442    // update captcha key; set key = username;
    +443    db.update_captcha_key(p.username, c.key, p.username)
    +444        .await
    +445        .unwrap();
    +446    // checking for captcha with old key; shouldn't exist
    +447    assert!(!db.captcha_exists(Some(p.username), c.key).await.unwrap());
    +448    // checking for captcha with new key; shouldn exist
    +449    assert!(db
    +450        .captcha_exists(Some(p.username), p.username)
    +451        .await
    +452        .unwrap());
    +453
    +454    // delete captcha levels
    +455    db.delete_captcha_levels(p.username, c.key).await.unwrap();
    +456
    +457    // update captcha; set description = username and duration *= duration;
    +458    let mut c2 = c.clone();
    +459    c2.duration *= c2.duration;
    +460    c2.description = p.username;
    +461    db.update_captcha_metadata(p.username, &c2).await.unwrap();
    +462
    +463    // delete captcha; updated key = p.username so invoke delete with it
    +464    db.delete_captcha(p.username, p.username).await.unwrap();
    +465    assert!(!db.captcha_exists(Some(p.username), c.key).await.unwrap());
    +466}
    \ No newline at end of file diff --git a/src/db_sqlx_maria/errors.rs.html b/src/db_sqlx_maria/errors.rs.html index 29c3cec2..6b3c2fd1 100644 --- a/src/db_sqlx_maria/errors.rs.html +++ b/src/db_sqlx_maria/errors.rs.html @@ -1,89 +1,43 @@ -errors.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! Error-handling utilities
    -use std::borrow::Cow;
    -
    -use db_core::dev::*;
    -use sqlx::Error;
    -
    -/// map custom row not found error to DB error
    -pub fn map_row_not_found_err(e: Error, row_not_found: DBError) -> DBError {
    -    if let Error::RowNotFound = e {
    -        row_not_found
    -    } else {
    -        map_register_err(e)
    -    }
    -}
    -
    -/// map postgres errors to [DBError](DBError) types
    -pub fn map_register_err(e: Error) -> DBError {
    -    if let Error::Database(err) = e {
    -        if err.code() == Some(Cow::from("23000")) {
    -            let msg = err.message();
    -            if msg.contains("for key 'name'") {
    -                DBError::UsernameTaken
    -            } else if msg.contains("for key 'email'") {
    -                DBError::EmailTaken
    -            } else if msg.contains("for key 'secret'") {
    -                DBError::SecretTaken
    -            } else if msg.contains("for key 'captcha_key'") {
    -                DBError::CaptchaKeyTaken
    -            } else {
    -                DBError::DBError(Box::new(Error::Database(err)))
    -            }
    -        } else {
    -            DBError::DBError(Box::new(Error::Database(err)))
    -        }
    -    } else {
    -        DBError::DBError(Box::new(e))
    -    }
    -}
    -
    \ No newline at end of file +errors.rs - source

    db_sqlx_maria/
    errors.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! Error-handling utilities
    +7use std::borrow::Cow;
    +8
    +9use db_core::dev::*;
    +10use sqlx::Error;
    +11
    +12/// map custom row not found error to DB error
    +13pub fn map_row_not_found_err(e: Error, row_not_found: DBError) -> DBError {
    +14    if let Error::RowNotFound = e {
    +15        row_not_found
    +16    } else {
    +17        map_register_err(e)
    +18    }
    +19}
    +20
    +21/// map postgres errors to [DBError](DBError) types
    +22pub fn map_register_err(e: Error) -> DBError {
    +23    if let Error::Database(err) = e {
    +24        if err.code() == Some(Cow::from("23000")) {
    +25            let msg = err.message();
    +26            if msg.contains("for key 'name'") {
    +27                DBError::UsernameTaken
    +28            } else if msg.contains("for key 'email'") {
    +29                DBError::EmailTaken
    +30            } else if msg.contains("for key 'secret'") {
    +31                DBError::SecretTaken
    +32            } else if msg.contains("for key 'captcha_key'") {
    +33                DBError::CaptchaKeyTaken
    +34            } else {
    +35                DBError::DBError(Box::new(Error::Database(err)))
    +36            }
    +37        } else {
    +38            DBError::DBError(Box::new(Error::Database(err)))
    +39        }
    +40    } else {
    +41        DBError::DBError(Box::new(e))
    +42    }
    +43}
    \ No newline at end of file diff --git a/src/db_sqlx_maria/lib.rs.html b/src/db_sqlx_maria/lib.rs.html index 7d589972..c8667e9a 100644 --- a/src/db_sqlx_maria/lib.rs.html +++ b/src/db_sqlx_maria/lib.rs.html @@ -1,2811 +1,1404 @@ -lib.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    -400
    -401
    -402
    -403
    -404
    -405
    -406
    -407
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    -424
    -425
    -426
    -427
    -428
    -429
    -430
    -431
    -432
    -433
    -434
    -435
    -436
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    -464
    -465
    -466
    -467
    -468
    -469
    -470
    -471
    -472
    -473
    -474
    -475
    -476
    -477
    -478
    -479
    -480
    -481
    -482
    -483
    -484
    -485
    -486
    -487
    -488
    -489
    -490
    -491
    -492
    -493
    -494
    -495
    -496
    -497
    -498
    -499
    -500
    -501
    -502
    -503
    -504
    -505
    -506
    -507
    -508
    -509
    -510
    -511
    -512
    -513
    -514
    -515
    -516
    -517
    -518
    -519
    -520
    -521
    -522
    -523
    -524
    -525
    -526
    -527
    -528
    -529
    -530
    -531
    -532
    -533
    -534
    -535
    -536
    -537
    -538
    -539
    -540
    -541
    -542
    -543
    -544
    -545
    -546
    -547
    -548
    -549
    -550
    -551
    -552
    -553
    -554
    -555
    -556
    -557
    -558
    -559
    -560
    -561
    -562
    -563
    -564
    -565
    -566
    -567
    -568
    -569
    -570
    -571
    -572
    -573
    -574
    -575
    -576
    -577
    -578
    -579
    -580
    -581
    -582
    -583
    -584
    -585
    -586
    -587
    -588
    -589
    -590
    -591
    -592
    -593
    -594
    -595
    -596
    -597
    -598
    -599
    -600
    -601
    -602
    -603
    -604
    -605
    -606
    -607
    -608
    -609
    -610
    -611
    -612
    -613
    -614
    -615
    -616
    -617
    -618
    -619
    -620
    -621
    -622
    -623
    -624
    -625
    -626
    -627
    -628
    -629
    -630
    -631
    -632
    -633
    -634
    -635
    -636
    -637
    -638
    -639
    -640
    -641
    -642
    -643
    -644
    -645
    -646
    -647
    -648
    -649
    -650
    -651
    -652
    -653
    -654
    -655
    -656
    -657
    -658
    -659
    -660
    -661
    -662
    -663
    -664
    -665
    -666
    -667
    -668
    -669
    -670
    -671
    -672
    -673
    -674
    -675
    -676
    -677
    -678
    -679
    -680
    -681
    -682
    -683
    -684
    -685
    -686
    -687
    -688
    -689
    -690
    -691
    -692
    -693
    -694
    -695
    -696
    -697
    -698
    -699
    -700
    -701
    -702
    -703
    -704
    -705
    -706
    -707
    -708
    -709
    -710
    -711
    -712
    -713
    -714
    -715
    -716
    -717
    -718
    -719
    -720
    -721
    -722
    -723
    -724
    -725
    -726
    -727
    -728
    -729
    -730
    -731
    -732
    -733
    -734
    -735
    -736
    -737
    -738
    -739
    -740
    -741
    -742
    -743
    -744
    -745
    -746
    -747
    -748
    -749
    -750
    -751
    -752
    -753
    -754
    -755
    -756
    -757
    -758
    -759
    -760
    -761
    -762
    -763
    -764
    -765
    -766
    -767
    -768
    -769
    -770
    -771
    -772
    -773
    -774
    -775
    -776
    -777
    -778
    -779
    -780
    -781
    -782
    -783
    -784
    -785
    -786
    -787
    -788
    -789
    -790
    -791
    -792
    -793
    -794
    -795
    -796
    -797
    -798
    -799
    -800
    -801
    -802
    -803
    -804
    -805
    -806
    -807
    -808
    -809
    -810
    -811
    -812
    -813
    -814
    -815
    -816
    -817
    -818
    -819
    -820
    -821
    -822
    -823
    -824
    -825
    -826
    -827
    -828
    -829
    -830
    -831
    -832
    -833
    -834
    -835
    -836
    -837
    -838
    -839
    -840
    -841
    -842
    -843
    -844
    -845
    -846
    -847
    -848
    -849
    -850
    -851
    -852
    -853
    -854
    -855
    -856
    -857
    -858
    -859
    -860
    -861
    -862
    -863
    -864
    -865
    -866
    -867
    -868
    -869
    -870
    -871
    -872
    -873
    -874
    -875
    -876
    -877
    -878
    -879
    -880
    -881
    -882
    -883
    -884
    -885
    -886
    -887
    -888
    -889
    -890
    -891
    -892
    -893
    -894
    -895
    -896
    -897
    -898
    -899
    -900
    -901
    -902
    -903
    -904
    -905
    -906
    -907
    -908
    -909
    -910
    -911
    -912
    -913
    -914
    -915
    -916
    -917
    -918
    -919
    -920
    -921
    -922
    -923
    -924
    -925
    -926
    -927
    -928
    -929
    -930
    -931
    -932
    -933
    -934
    -935
    -936
    -937
    -938
    -939
    -940
    -941
    -942
    -943
    -944
    -945
    -946
    -947
    -948
    -949
    -950
    -951
    -952
    -953
    -954
    -955
    -956
    -957
    -958
    -959
    -960
    -961
    -962
    -963
    -964
    -965
    -966
    -967
    -968
    -969
    -970
    -971
    -972
    -973
    -974
    -975
    -976
    -977
    -978
    -979
    -980
    -981
    -982
    -983
    -984
    -985
    -986
    -987
    -988
    -989
    -990
    -991
    -992
    -993
    -994
    -995
    -996
    -997
    -998
    -999
    -1000
    -1001
    -1002
    -1003
    -1004
    -1005
    -1006
    -1007
    -1008
    -1009
    -1010
    -1011
    -1012
    -1013
    -1014
    -1015
    -1016
    -1017
    -1018
    -1019
    -1020
    -1021
    -1022
    -1023
    -1024
    -1025
    -1026
    -1027
    -1028
    -1029
    -1030
    -1031
    -1032
    -1033
    -1034
    -1035
    -1036
    -1037
    -1038
    -1039
    -1040
    -1041
    -1042
    -1043
    -1044
    -1045
    -1046
    -1047
    -1048
    -1049
    -1050
    -1051
    -1052
    -1053
    -1054
    -1055
    -1056
    -1057
    -1058
    -1059
    -1060
    -1061
    -1062
    -1063
    -1064
    -1065
    -1066
    -1067
    -1068
    -1069
    -1070
    -1071
    -1072
    -1073
    -1074
    -1075
    -1076
    -1077
    -1078
    -1079
    -1080
    -1081
    -1082
    -1083
    -1084
    -1085
    -1086
    -1087
    -1088
    -1089
    -1090
    -1091
    -1092
    -1093
    -1094
    -1095
    -1096
    -1097
    -1098
    -1099
    -1100
    -1101
    -1102
    -1103
    -1104
    -1105
    -1106
    -1107
    -1108
    -1109
    -1110
    -1111
    -1112
    -1113
    -1114
    -1115
    -1116
    -1117
    -1118
    -1119
    -1120
    -1121
    -1122
    -1123
    -1124
    -1125
    -1126
    -1127
    -1128
    -1129
    -1130
    -1131
    -1132
    -1133
    -1134
    -1135
    -1136
    -1137
    -1138
    -1139
    -1140
    -1141
    -1142
    -1143
    -1144
    -1145
    -1146
    -1147
    -1148
    -1149
    -1150
    -1151
    -1152
    -1153
    -1154
    -1155
    -1156
    -1157
    -1158
    -1159
    -1160
    -1161
    -1162
    -1163
    -1164
    -1165
    -1166
    -1167
    -1168
    -1169
    -1170
    -1171
    -1172
    -1173
    -1174
    -1175
    -1176
    -1177
    -1178
    -1179
    -1180
    -1181
    -1182
    -1183
    -1184
    -1185
    -1186
    -1187
    -1188
    -1189
    -1190
    -1191
    -1192
    -1193
    -1194
    -1195
    -1196
    -1197
    -1198
    -1199
    -1200
    -1201
    -1202
    -1203
    -1204
    -1205
    -1206
    -1207
    -1208
    -1209
    -1210
    -1211
    -1212
    -1213
    -1214
    -1215
    -1216
    -1217
    -1218
    -1219
    -1220
    -1221
    -1222
    -1223
    -1224
    -1225
    -1226
    -1227
    -1228
    -1229
    -1230
    -1231
    -1232
    -1233
    -1234
    -1235
    -1236
    -1237
    -1238
    -1239
    -1240
    -1241
    -1242
    -1243
    -1244
    -1245
    -1246
    -1247
    -1248
    -1249
    -1250
    -1251
    -1252
    -1253
    -1254
    -1255
    -1256
    -1257
    -1258
    -1259
    -1260
    -1261
    -1262
    -1263
    -1264
    -1265
    -1266
    -1267
    -1268
    -1269
    -1270
    -1271
    -1272
    -1273
    -1274
    -1275
    -1276
    -1277
    -1278
    -1279
    -1280
    -1281
    -1282
    -1283
    -1284
    -1285
    -1286
    -1287
    -1288
    -1289
    -1290
    -1291
    -1292
    -1293
    -1294
    -1295
    -1296
    -1297
    -1298
    -1299
    -1300
    -1301
    -1302
    -1303
    -1304
    -1305
    -1306
    -1307
    -1308
    -1309
    -1310
    -1311
    -1312
    -1313
    -1314
    -1315
    -1316
    -1317
    -1318
    -1319
    -1320
    -1321
    -1322
    -1323
    -1324
    -1325
    -1326
    -1327
    -1328
    -1329
    -1330
    -1331
    -1332
    -1333
    -1334
    -1335
    -1336
    -1337
    -1338
    -1339
    -1340
    -1341
    -1342
    -1343
    -1344
    -1345
    -1346
    -1347
    -1348
    -1349
    -1350
    -1351
    -1352
    -1353
    -1354
    -1355
    -1356
    -1357
    -1358
    -1359
    -1360
    -1361
    -1362
    -1363
    -1364
    -1365
    -1366
    -1367
    -1368
    -1369
    -1370
    -1371
    -1372
    -1373
    -1374
    -1375
    -1376
    -1377
    -1378
    -1379
    -1380
    -1381
    -1382
    -1383
    -1384
    -1385
    -1386
    -1387
    -1388
    -1389
    -1390
    -1391
    -1392
    -1393
    -1394
    -1395
    -1396
    -1397
    -1398
    -1399
    -1400
    -1401
    -1402
    -1403
    -1404
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::str::FromStr;
    -
    -use db_core::dev::*;
    -
    -use sqlx::mysql::MySqlPoolOptions;
    -use sqlx::types::time::OffsetDateTime;
    -use sqlx::ConnectOptions;
    -use sqlx::MySqlPool;
    -use uuid::Uuid;
    -
    -pub mod errors;
    -#[cfg(test)]
    -pub mod tests;
    -
    -#[derive(Clone)]
    -pub struct Database {
    -    pub pool: MySqlPool,
    -}
    -
    -/// Use an existing database pool
    -pub struct Conn(pub MySqlPool);
    -
    -/// Connect to database
    -pub enum ConnectionOptions {
    -    /// fresh connection
    -    Fresh(Fresh),
    -    /// existing connection
    -    Existing(Conn),
    -}
    -
    -pub struct Fresh {
    -    pub pool_options: MySqlPoolOptions,
    -    pub disable_logging: bool,
    -    pub url: String,
    -}
    -
    -pub mod dev {
    -    pub use super::errors::*;
    -    pub use super::Database;
    -    pub use db_core::dev::*;
    -    pub use sqlx::Error;
    -}
    -
    -pub mod prelude {
    -    pub use super::*;
    -}
    -
    -#[async_trait]
    -impl Connect for ConnectionOptions {
    -    type Pool = Database;
    -    async fn connect(self) -> DBResult<Self::Pool> {
    -        let pool = match self {
    -            Self::Fresh(fresh) => {
    -                let mut connect_options =
    -                    sqlx::mysql::MySqlConnectOptions::from_str(&fresh.url).unwrap();
    -                if fresh.disable_logging {
    -                    connect_options = connect_options.disable_statement_logging();
    -                }
    -                fresh
    -                    .pool_options
    -                    .connect_with(connect_options)
    -                    .await
    -                    .map_err(|e| DBError::DBError(Box::new(e)))?
    -            }
    -
    -            Self::Existing(conn) => conn.0,
    -        };
    -        Ok(Database { pool })
    -    }
    -}
    -
    -use dev::*;
    -
    -#[async_trait]
    -impl Migrate for Database {
    -    async fn migrate(&self) -> DBResult<()> {
    -        sqlx::migrate!("./migrations/")
    -            .run(&self.pool)
    -            .await
    -            .map_err(|e| DBError::DBError(Box::new(e)))?;
    -        Ok(())
    -    }
    -}
    -
    -#[async_trait]
    -impl MCDatabase for Database {
    -    /// ping DB
    -    async fn ping(&self) -> bool {
    -        use sqlx::Connection;
    -
    -        if let Ok(mut con) = self.pool.acquire().await {
    -            con.ping().await.is_ok()
    -        } else {
    -            false
    -        }
    -    }
    -
    -    /// register a new user
    -    async fn register(&self, p: &Register) -> DBResult<()> {
    -        let res = if let Some(email) = &p.email {
    -            sqlx::query!(
    -                "insert into mcaptcha_users 
    -        (name , password, email, secret) values (?, ?, ?, ?)",
    -                &p.username,
    -                &p.hash,
    -                &email,
    -                &p.secret,
    -            )
    -            .execute(&self.pool)
    -            .await
    -        } else {
    -            sqlx::query!(
    -                "INSERT INTO mcaptcha_users 
    -        (name , password,  secret) VALUES (?, ?, ?)",
    -                &p.username,
    -                &p.hash,
    -                &p.secret,
    -            )
    -            .execute(&self.pool)
    -            .await
    -        };
    -        res.map_err(map_register_err)?;
    -        Ok(())
    -    }
    -
    -    /// delete a user
    -    async fn delete_user(&self, username: &str) -> DBResult<()> {
    -        sqlx::query!("DELETE FROM mcaptcha_users WHERE name = (?)", username)
    -            .execute(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// check if username exists
    -    async fn username_exists(&self, username: &str) -> DBResult<bool> {
    -        match sqlx::query!("SELECT name from mcaptcha_users WHERE name = ?", username,)
    -            .fetch_one(&self.pool)
    -            .await
    -        {
    -            Ok(_) => Ok(true),
    -            Err(sqlx::Error::RowNotFound) => Ok(false),
    -            Err(e) => Err(map_register_err(e)),
    -        }
    -    }
    -
    -    /// get user email
    -    async fn get_email(&self, username: &str) -> DBResult<Option<String>> {
    -        struct Email {
    -            email: Option<String>,
    -        }
    -
    -        let res = sqlx::query_as!(
    -            Email,
    -            "SELECT email FROM mcaptcha_users WHERE name = ?",
    -            username
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -        Ok(res.email)
    -    }
    -
    -    /// check if email exists
    -    async fn email_exists(&self, email: &str) -> DBResult<bool> {
    -        match sqlx::query!("SELECT name from mcaptcha_users WHERE email = ?", email)
    -            .fetch_one(&self.pool)
    -            .await
    -        {
    -            Ok(_) => Ok(true),
    -            Err(sqlx::Error::RowNotFound) => Ok(false),
    -            Err(e) => Err(map_register_err(e)),
    -        }
    -    }
    -
    -    /// update a user's email
    -    async fn update_email(&self, p: &UpdateEmail) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set email = ?
    -            WHERE name = ?",
    -            &p.new_email,
    -            &p.username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// get a user's password
    -    async fn get_password(&self, l: &Login) -> DBResult<NameHash> {
    -        struct Password {
    -            name: String,
    -            password: String,
    -        }
    -
    -        let rec = match l {
    -            Login::Username(u) => sqlx::query_as!(
    -                Password,
    -                r#"SELECT name, password  FROM mcaptcha_users WHERE name = ?"#,
    -                u,
    -            )
    -            .fetch_one(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    -
    -            Login::Email(e) => sqlx::query_as!(
    -                Password,
    -                r#"SELECT name, password  FROM mcaptcha_users WHERE email = ?"#,
    -                e,
    -            )
    -            .fetch_one(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    -        };
    -
    -        let res = NameHash {
    -            hash: rec.password,
    -            username: rec.name,
    -        };
    -
    -        Ok(res)
    -    }
    -
    -    /// update user's password
    -    async fn update_password(&self, p: &NameHash) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set password = ?
    -            WHERE name = ?",
    -            &p.hash,
    -            &p.username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// update username
    -    async fn update_username(&self, current: &str, new: &str) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set name = ?
    -            WHERE name = ?",
    -            new,
    -            current,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// get a user's secret
    -    async fn get_secret(&self, username: &str) -> DBResult<Secret> {
    -        let secret = sqlx::query_as!(
    -            Secret,
    -            r#"SELECT secret  FROM mcaptcha_users WHERE name = ?"#,
    -            username,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(secret)
    -    }
    -
    -    /// get a user's secret from a captcha key
    -    async fn get_secret_from_captcha(&self, key: &str) -> DBResult<Secret> {
    -        let secret = sqlx::query_as!(
    -            Secret,
    -            r#"SELECT secret  FROM mcaptcha_users WHERE ID = (
    -                    SELECT user_id FROM mcaptcha_config WHERE captcha_key = ?
    -                    )"#,
    -            key,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(secret)
    -    }
    -
    -    /// update a user's secret
    -    async fn update_secret(&self, username: &str, secret: &str) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set secret = ?
    -        WHERE name = ?",
    -            &secret,
    -            &username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// create new captcha
    -    async fn create_captcha(&self, username: &str, p: &CreateCaptcha) -> DBResult<()> {
    -        sqlx::query!(
    -            "INSERT INTO mcaptcha_config
    -        (`captcha_key`, `user_id`, `duration`, `name`)
    -        VALUES (?, (SELECT ID FROM mcaptcha_users WHERE name = ?), ?, ?)",
    -            p.key,
    -            username,
    -            p.duration as i32,
    -            p.description,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get captcha config
    -    async fn get_captcha_config(&self, username: &str, key: &str) -> DBResult<Captcha> {
    -        let captcha = sqlx::query_as!(
    -            InternaleCaptchaConfig,
    -            "SELECT `config_id`, `duration`, `name`, `captcha_key` from mcaptcha_config WHERE
    -                        `captcha_key` = ? AND
    -                        user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?) ",
    -            &key,
    -            &username,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(captcha.into())
    -    }
    -
    -    /// Get all captchas belonging to user
    -    async fn get_all_user_captchas(&self, username: &str) -> DBResult<Vec<Captcha>> {
    -        let mut res = sqlx::query_as!(
    -            InternaleCaptchaConfig,
    -            "SELECT captcha_key, name, config_id, duration FROM mcaptcha_config WHERE
    -            user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?) ",
    -            &username,
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        let mut captchas = Vec::with_capacity(res.len());
    -
    -        res.drain(0..).for_each(|r| captchas.push(r.into()));
    -
    -        Ok(captchas)
    -    }
    -
    -    /// update captcha metadata; doesn't change captcha key
    -    async fn update_captcha_metadata(
    -        &self,
    -        username: &str,
    -        p: &CreateCaptcha,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_config SET name = ?, duration = ?
    -            WHERE user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)
    -            AND captcha_key = ?",
    -            p.description,
    -            p.duration,
    -            username,
    -            p.key,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// update captcha key; doesn't change metadata
    -    async fn update_captcha_key(
    -        &self,
    -        username: &str,
    -        old_key: &str,
    -        new_key: &str,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_config SET captcha_key = ? 
    -        WHERE captcha_key = ? AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)",
    -            new_key,
    -            old_key,
    -            username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Add levels to captcha
    -    async fn add_captcha_levels(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -        levels: &[Level],
    -    ) -> DBResult<()> {
    -        use futures::future::try_join_all;
    -        let mut futs = Vec::with_capacity(levels.len());
    -
    -        for level in levels.iter() {
    -            let difficulty_factor = level.difficulty_factor as i32;
    -            let visitor_threshold = level.visitor_threshold as i32;
    -            let fut = sqlx::query!(
    -                "INSERT INTO mcaptcha_levels (
    -            difficulty_factor, 
    -            visitor_threshold,
    -            config_id) VALUES  (
    -            ?, ?, (
    -                SELECT config_id FROM mcaptcha_config WHERE
    -                captcha_key = (?) AND user_id = (
    -                SELECT ID FROM mcaptcha_users WHERE name = ?
    -                    )));",
    -                difficulty_factor,
    -                visitor_threshold,
    -                &captcha_key,
    -                username,
    -            )
    -            .execute(&self.pool);
    -            futs.push(fut);
    -        }
    -
    -        try_join_all(futs)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        let mut futs = Vec::with_capacity(levels.len());
    -
    -        for level in levels.iter() {
    -            let difficulty_factor = level.difficulty_factor as i32;
    -            let visitor_threshold = level.visitor_threshold as i32;
    -            let fut = sqlx::query!(
    -                "INSERT INTO
    -                    mcaptcha_track_nonce (level_id, nonce)
    -                VALUES  ((
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?)
    -                    AND
    -                        difficulty_factor = ?
    -                    AND
    -                        visitor_threshold = ?
    -                    ), ?);",
    -                &captcha_key,
    -                difficulty_factor,
    -                visitor_threshold,
    -                0,
    -            )
    -            .execute(&self.pool);
    -            futs.push(fut);
    -        }
    -
    -        try_join_all(futs)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// check if captcha exists
    -    async fn captcha_exists(
    -        &self,
    -        username: Option<&str>,
    -        captcha_key: &str,
    -    ) -> DBResult<bool> {
    -        //        let mut exists = false;
    -
    -        #[allow(dead_code)]
    -        struct ConfigId {
    -            config_id: i32,
    -        }
    -        let res = match username {
    -            Some(username) => {
    -                sqlx::query_as!(
    -                    ConfigId,
    -                    "SELECT config_id FROM mcaptcha_config
    -                        WHERE
    -                            captcha_key = ? 
    -                        AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)",
    -                    captcha_key,
    -                    username
    -                )
    -                .fetch_one(&self.pool)
    -                .await
    -                //                if let Some(x) = x.exists {
    -                //                    exists = x;
    -                //                };
    -            }
    -
    -            None => {
    -                sqlx::query_as!(
    -                    ConfigId,
    -                    "SELECT config_id from mcaptcha_config WHERE captcha_key = ?",
    -                    &captcha_key,
    -                )
    -                .fetch_one(&self.pool)
    -                .await
    -            } //if let Some(x) = x.exists {
    -              //    exists = x;
    -              //};
    -        };
    -        match res {
    -            Ok(_) => Ok(true),
    -            Err(sqlx::Error::RowNotFound) => Ok(false),
    -            Err(e) => Err(map_register_err(e)),
    -        }
    -    }
    -
    -    /// Delete all levels of a captcha
    -    async fn delete_captcha_levels(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "DELETE FROM mcaptcha_levels 
    -        WHERE config_id = (
    -            SELECT config_id FROM mcaptcha_config where captcha_key= (?) 
    -            AND user_id = (
    -            SELECT ID from mcaptcha_users WHERE name = ?
    -            )
    -            )",
    -            captcha_key,
    -            username
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Delete captcha
    -    async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()> {
    -        sqlx::query!(
    -            "DELETE FROM mcaptcha_config where captcha_key= (?)
    -                AND
    -            user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)",
    -            captcha_key,
    -            username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get captcha levels
    -    async fn get_captcha_levels(
    -        &self,
    -        username: Option<&str>,
    -        captcha_key: &str,
    -    ) -> DBResult<Vec<Level>> {
    -        struct I32Levels {
    -            difficulty_factor: i32,
    -            visitor_threshold: i32,
    -        }
    -        let levels = match username {
    -            None => sqlx::query_as!(
    -                I32Levels,
    -                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    -            config_id = (
    -                SELECT config_id FROM mcaptcha_config where captcha_key= (?)
    -                ) ORDER BY difficulty_factor ASC;",
    -                captcha_key,
    -            )
    -            .fetch_all(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    -
    -            Some(username) => sqlx::query_as!(
    -                I32Levels,
    -                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    -            config_id = (
    -                SELECT config_id FROM mcaptcha_config where captcha_key= (?)
    -                AND user_id = (SELECT ID from mcaptcha_users WHERE name = ?)
    -                )
    -            ORDER BY difficulty_factor ASC;",
    -                captcha_key,
    -                username
    -            )
    -            .fetch_all(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    -        };
    -
    -        let mut new_levels = Vec::with_capacity(levels.len());
    -        for l in levels.iter() {
    -            new_levels.push(Level {
    -                difficulty_factor: l.difficulty_factor as u32,
    -                visitor_threshold: l.visitor_threshold as u32,
    -            });
    -        }
    -        Ok(new_levels)
    -    }
    -
    -    /// Get captcha's cooldown period
    -    async fn get_captcha_cooldown(&self, captcha_key: &str) -> DBResult<i32> {
    -        struct DurationResp {
    -            duration: i32,
    -        }
    -
    -        let resp = sqlx::query_as!(
    -            DurationResp,
    -            "SELECT duration FROM mcaptcha_config  
    -            where captcha_key= ?",
    -            captcha_key,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(resp.duration)
    -    }
    -    /// Add traffic configuration
    -    async fn add_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -        pattern: &TrafficPattern,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "INSERT INTO mcaptcha_sitekey_user_provided_avg_traffic (
    -            config_id,
    -            avg_traffic,
    -            peak_sustainable_traffic,
    -            broke_my_site_traffic
    -            ) VALUES ( 
    -             (SELECT config_id FROM mcaptcha_config where captcha_key= (?)
    -             AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)
    -            ), ?, ?, ?)",
    -            //payload.avg_traffic,
    -            captcha_key,
    -            username,
    -            pattern.avg_traffic as i32,
    -            pattern.peak_sustainable_traffic as i32,
    -            pattern.broke_my_site_traffic.as_ref().map(|v| *v as i32),
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// Get traffic configuration
    -    async fn get_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<TrafficPattern> {
    -        struct Traffic {
    -            peak_sustainable_traffic: i32,
    -            avg_traffic: i32,
    -            broke_my_site_traffic: Option<i32>,
    -        }
    -        let res = sqlx::query_as!(
    -            Traffic,
    -            "SELECT 
    -          avg_traffic, 
    -          peak_sustainable_traffic, 
    -          broke_my_site_traffic 
    -        FROM 
    -          mcaptcha_sitekey_user_provided_avg_traffic 
    -        WHERE 
    -          config_id = (
    -            SELECT 
    -              config_id 
    -            FROM 
    -              mcaptcha_config 
    -            WHERE 
    -              captcha_key = ? 
    -              AND user_id = (
    -                SELECT 
    -                  id 
    -                FROM 
    -                  mcaptcha_users 
    -                WHERE 
    -                  NAME = ?
    -              )
    -          )
    -        ",
    -            captcha_key,
    -            username
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    -        Ok(TrafficPattern {
    -            broke_my_site_traffic: res.broke_my_site_traffic.as_ref().map(|v| *v as u32),
    -            avg_traffic: res.avg_traffic as u32,
    -            peak_sustainable_traffic: res.peak_sustainable_traffic as u32,
    -        })
    -    }
    -
    -    /// Delete traffic configuration
    -    async fn delete_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "DELETE FROM mcaptcha_sitekey_user_provided_avg_traffic
    -        WHERE config_id = (
    -            SELECT config_id 
    -            FROM 
    -                mcaptcha_config 
    -            WHERE
    -                captcha_key = ?
    -            AND 
    -                user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)
    -            );",
    -            captcha_key,
    -            username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// create new notification
    -    async fn create_notification(&self, p: &AddNotification) -> DBResult<()> {
    -        let now = now_unix_time_stamp();
    -        sqlx::query!(
    -            "INSERT INTO mcaptcha_notifications (
    -              heading, message, tx, rx, received)
    -              VALUES  (
    -              ?, ?,
    -                  (SELECT ID FROM mcaptcha_users WHERE name = ?),
    -                  (SELECT ID FROM mcaptcha_users WHERE name = ?),
    -                  ?
    -                      );",
    -            p.heading,
    -            p.message,
    -            p.from,
    -            p.to,
    -            now
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(map_register_err)?;
    -
    -        Ok(())
    -    }
    -
    -    /// get all unread notifications
    -    async fn get_all_unread_notifications(
    -        &self,
    -        username: &str,
    -    ) -> DBResult<Vec<Notification>> {
    -        let mut inner_notifications = sqlx::query_file_as!(
    -            InnerNotification,
    -            "./src/get_all_unread_notifications.sql",
    -            &username
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        let mut notifications = Vec::with_capacity(inner_notifications.len());
    -
    -        inner_notifications
    -            .drain(0..)
    -            .for_each(|n| notifications.push(n.into()));
    -
    -        Ok(notifications)
    -    }
    -
    -    /// mark a notification read
    -    async fn mark_notification_read(&self, username: &str, id: i32) -> DBResult<()> {
    -        sqlx::query_file_as!(
    -            Notification,
    -            "./src/mark_notification_read.sql",
    -            id,
    -            &username
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::NotificationNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig fetches
    -    async fn record_fetch(&self, key: &str) -> DBResult<()> {
    -        let now = now_unix_time_stamp();
    -        let _ = sqlx::query!(
    -        "INSERT INTO mcaptcha_pow_fetched_stats 
    -        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?)",
    -        key,
    -        &now,
    -    )
    -    .execute(&self.pool)
    -    .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig solves
    -    async fn record_solve(&self, key: &str) -> DBResult<()> {
    -        let now = OffsetDateTime::now_utc();
    -        let _ = sqlx::query!(
    -        "INSERT INTO mcaptcha_pow_solved_stats 
    -        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?)",
    -        key,
    -        &now,
    -    )
    -    .execute(&self.pool)
    -    .await
    -    .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig confirms
    -    async fn record_confirm(&self, key: &str) -> DBResult<()> {
    -        let now = now_unix_time_stamp();
    -        let _ = sqlx::query!(
    -        "INSERT INTO mcaptcha_pow_confirmed_stats 
    -        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?)",
    -        key,
    -        &now
    -    )
    -    .execute(&self.pool)
    -    .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// fetch PoWConfig fetches
    -    async fn fetch_config_fetched(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    -        let records = sqlx::query_as!(
    -            Date,
    -            "SELECT time FROM mcaptcha_pow_fetched_stats
    -            WHERE 
    -                config_id = (
    -                    SELECT 
    -                        config_id FROM mcaptcha_config 
    -                    WHERE 
    -                        captcha_key = ?
    -                    AND
    -                        user_id = (
    -                        SELECT 
    -                            ID FROM mcaptcha_users WHERE name = ?))
    -                ORDER BY time DESC",
    -            &key,
    -            &user,
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(Date::dates_to_unix(records))
    -    }
    -
    -    /// fetch PoWConfig solves
    -    async fn fetch_solve(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    -        let records = sqlx::query_as!(
    -            Date,
    -            "SELECT time FROM mcaptcha_pow_solved_stats 
    -            WHERE config_id = (
    -                SELECT config_id FROM mcaptcha_config 
    -                WHERE 
    -                    captcha_key = ?
    -                AND
    -                     user_id = (
    -                        SELECT 
    -                            ID FROM mcaptcha_users WHERE name = ?)) 
    -                ORDER BY time DESC",
    -            &key,
    -            &user
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(Date::dates_to_unix(records))
    -    }
    -
    -    /// fetch PoWConfig confirms
    -    async fn fetch_confirm(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    -        let records = sqlx::query_as!(
    -            Date,
    -            "SELECT time FROM mcaptcha_pow_confirmed_stats 
    -            WHERE 
    -                config_id = (
    -                    SELECT config_id FROM mcaptcha_config 
    -                WHERE 
    -                    captcha_key = ?
    -                AND
    -                     user_id = (
    -                        SELECT 
    -                            ID FROM mcaptcha_users WHERE name = ?))
    -                ORDER BY time DESC",
    -            &key,
    -            &user
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(Date::dates_to_unix(records))
    -    }
    -
    -    /// record PoW timing
    -    async fn analysis_save(
    -        &self,
    -        captcha_id: &str,
    -        d: &CreatePerformanceAnalytics,
    -    ) -> DBResult<()> {
    -        let _ = sqlx::query!(
    -            "INSERT INTO mcaptcha_pow_analytics 
    -            (config_id, time, difficulty_factor, worker_type)
    -        VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?, ?, ?)",
    -            captcha_id,
    -            d.time as i32,
    -            d.difficulty_factor as i32,
    -            &d.worker_type,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// fetch PoW analytics
    -    async fn analytics_fetch(
    -        &self,
    -        captcha_id: &str,
    -        limit: usize,
    -        offset: usize,
    -    ) -> DBResult<Vec<PerformanceAnalytics>> {
    -        struct P {
    -            id: i32,
    -            time: i32,
    -            difficulty_factor: i32,
    -            worker_type: String,
    -        }
    -
    -        impl From<P> for PerformanceAnalytics {
    -            fn from(v: P) -> Self {
    -                Self {
    -                    id: v.id as usize,
    -                    time: v.time as u32,
    -                    difficulty_factor: v.difficulty_factor as u32,
    -                    worker_type: v.worker_type,
    -                }
    -            }
    -        }
    -
    -        let mut c = sqlx::query_as!(
    -            P,
    -            "SELECT
    -                id, time, difficulty_factor, worker_type
    -            FROM
    -                mcaptcha_pow_analytics
    -            WHERE
    -                config_id = (
    -                    SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?
    -                ) 
    -            ORDER BY ID
    -            LIMIT ? OFFSET ?",
    -            &captcha_id,
    -            limit as i64,
    -            offset as i64,
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        let mut res = Vec::with_capacity(c.len());
    -        for i in c.drain(0..) {
    -            res.push(i.into())
    -        }
    -
    -        Ok(res)
    -    }
    -
    -    /// Create psuedo ID against campaign ID to publish analytics
    -    async fn analytics_create_psuedo_id_if_not_exists(
    -        &self,
    -        captcha_id: &str,
    -    ) -> DBResult<()> {
    -        let id = Uuid::new_v4();
    -        sqlx::query!(
    -            "
    -            INSERT INTO
    -                mcaptcha_psuedo_campaign_id (config_id, psuedo_id)
    -            VALUES (
    -                (SELECT config_id FROM mcaptcha_config WHERE captcha_key = (?)),
    -                ?
    -            );",
    -            captcha_id,
    -            &id.to_string(),
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get psuedo ID from campaign ID
    -    async fn analytics_get_psuedo_id_from_capmaign_id(
    -        &self,
    -        captcha_id: &str,
    -    ) -> DBResult<String> {
    -        let res = sqlx::query_as!(
    -            PsuedoID,
    -            "SELECT psuedo_id FROM
    -                mcaptcha_psuedo_campaign_id
    -            WHERE
    -                 config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = (?));
    -            ",
    -            captcha_id
    -        ).fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(res.psuedo_id)
    -    }
    -
    -    /// Get campaign ID from psuedo ID
    -    async fn analytics_get_capmaign_id_from_psuedo_id(
    -        &self,
    -        psuedo_id: &str,
    -    ) -> DBResult<String> {
    -        struct ID {
    -            captcha_key: String,
    -        }
    -
    -        let res = sqlx::query_as!(
    -            ID,
    -            "SELECT
    -                captcha_key
    -            FROM
    -                mcaptcha_config
    -            WHERE
    -                 config_id = (
    -                     SELECT
    -                         config_id
    -                     FROM
    -                         mcaptcha_psuedo_campaign_id
    -                     WHERE
    -                         psuedo_id = ?
    -                 );",
    -            psuedo_id
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(res.captcha_key)
    -    }
    -
    -    async fn analytics_delete_all_records_for_campaign(
    -        &self,
    -        campaign_id: &str,
    -    ) -> DBResult<()> {
    -        let _ = sqlx::query!(
    -            "
    -        DELETE FROM
    -            mcaptcha_psuedo_campaign_id
    -        WHERE config_id = (
    -            SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?
    -        );",
    -            campaign_id
    -        )
    -        .execute(&self.pool)
    -        .await;
    -
    -        let _ = sqlx::query!(
    -            "
    -            DELETE FROM
    -                mcaptcha_pow_analytics
    -            WHERE
    -                config_id = (
    -                    SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?
    -            ) ",
    -            campaign_id
    -        )
    -        .execute(&self.pool)
    -        .await;
    -
    -        Ok(())
    -    }
    -    /// Get all psuedo IDs
    -    async fn analytics_get_all_psuedo_ids(&self, page: usize) -> DBResult<Vec<String>> {
    -        const LIMIT: usize = 50;
    -        let offset = LIMIT * page;
    -
    -        let mut res = sqlx::query_as!(
    -            PsuedoID,
    -            "
    -                SELECT
    -                    psuedo_id
    -                FROM
    -                    mcaptcha_psuedo_campaign_id
    -                    ORDER BY ID ASC LIMIT ? OFFSET ?;",
    -            LIMIT as i64,
    -            offset as i64
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(res.drain(0..).map(|r| r.psuedo_id).collect())
    -    }
    -
    -    /// Track maximum nonce received against captcha levels
    -    async fn update_max_nonce_for_level(
    -        &self,
    -        captcha_key: &str,
    -        difficulty_factor: u32,
    -        latest_nonce: u32,
    -    ) -> DBResult<()> {
    -        let latest_nonce = latest_nonce as i64;
    -        sqlx::query!(
    -                "UPDATE mcaptcha_track_nonce SET nonce = ?
    -                WHERE level_id =  (
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?)
    -                    AND
    -                        difficulty_factor = ?
    -                    )
    -                AND nonce <= ?;",
    -                latest_nonce,
    -                &captcha_key,
    -                difficulty_factor as i64,
    -                latest_nonce
    -            )
    -            .execute(&self.pool).await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get maximum nonce tracked so far for captcha levels
    -    async fn get_max_nonce_for_level(
    -        &self,
    -        captcha_key: &str,
    -        difficulty_factor: u32,
    -    ) -> DBResult<u32> {
    -        struct X {
    -            nonce: i32,
    -        }
    -
    -        async fn inner_get_max_nonce(
    -            pool: &MySqlPool,
    -            captcha_key: &str,
    -            difficulty_factor: u32,
    -        ) -> DBResult<X> {
    -            sqlx::query_as!(
    -                X,
    -                "SELECT nonce FROM mcaptcha_track_nonce
    -                WHERE level_id =  (
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?)
    -                    AND
    -                        difficulty_factor = ?
    -                    );",
    -                &captcha_key,
    -                difficulty_factor as i32,
    -            )
    -                .fetch_one(pool).await
    -                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))
    -        }
    -
    -        let res = inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await;
    -        if let Err(DBError::CaptchaNotFound) = res {
    -            sqlx::query!(
    -                "INSERT INTO
    -                    mcaptcha_track_nonce (level_id, nonce)
    -                VALUES  ((
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key =?)
    -                    AND
    -                        difficulty_factor = ?
    -                    ), ?);",
    -                &captcha_key,
    -                difficulty_factor as i32,
    -                0,
    -            )
    -            .execute(&self.pool)
    -            .await
    -                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -            let res =
    -                inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await?;
    -            Ok(res.nonce as u32)
    -        } else {
    -            let res = res?;
    -            Ok(res.nonce as u32)
    -        }
    -    }
    -
    -    /// Get number of analytics entries that are under a certain duration
    -    async fn stats_get_num_logs_under_time(&self, duration: u32) -> DBResult<usize> {
    -        struct Count {
    -            count: Option<i64>,
    -        }
    -
    -        //"SELECT COUNT(*) FROM (SELECT difficulty_factor FROM mcaptcha_pow_analytics WHERE time <= ?) as count",
    -        let count = sqlx::query_as!(
    -            Count,
    -            "SELECT
    -                COUNT(difficulty_factor) AS count
    -            FROM
    -                mcaptcha_pow_analytics
    -            WHERE time <= ?;",
    -            duration as i32,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(count.count.unwrap_or_else(|| 0) as usize)
    -    }
    -
    -    /// Get the entry at a location in the list of analytics entires under a certain time limited
    -    /// and sorted in ascending order
    -    async fn stats_get_entry_at_location_for_time_limit_asc(
    -        &self,
    -        duration: u32,
    -        location: u32,
    -    ) -> DBResult<Option<usize>> {
    -        struct Difficulty {
    -            difficulty_factor: Option<i32>,
    -        }
    -
    -        match sqlx::query_as!(
    -            Difficulty,
    -            "SELECT
    -            difficulty_factor
    -        FROM
    -            mcaptcha_pow_analytics
    -        WHERE
    -            time <= ?
    -        ORDER BY difficulty_factor ASC LIMIT 1 OFFSET ?;",
    -            duration as i32,
    -            location as i64 - 1,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        {
    -            Ok(res) => Ok(Some(res.difficulty_factor.unwrap() as usize)),
    -            Err(sqlx::Error::RowNotFound) => Ok(None),
    -            Err(e) => Err(map_row_not_found_err(e, DBError::CaptchaNotFound)),
    -        }
    -    }
    -
    -    /// Get all easy captcha configurations on instance
    -    async fn get_all_easy_captchas(
    -        &self,
    -        limit: usize,
    -        offset: usize,
    -    ) -> DBResult<Vec<EasyCaptcha>> {
    -        struct InnerEasyCaptcha {
    -            captcha_key: String,
    -            name: String,
    -            username: String,
    -            peak_sustainable_traffic: i32,
    -            avg_traffic: i32,
    -            broke_my_site_traffic: Option<i32>,
    -        }
    -        let mut inner_res = sqlx::query_as!(
    -            InnerEasyCaptcha,
    -                "SELECT 
    -              mcaptcha_sitekey_user_provided_avg_traffic.avg_traffic, 
    -              mcaptcha_sitekey_user_provided_avg_traffic.peak_sustainable_traffic, 
    -              mcaptcha_sitekey_user_provided_avg_traffic.broke_my_site_traffic,
    -              mcaptcha_config.name,
    -              mcaptcha_users.name as username,
    -              mcaptcha_config.captcha_key
    -            FROM 
    -              mcaptcha_sitekey_user_provided_avg_traffic 
    -            INNER JOIN
    -                mcaptcha_config
    -            ON
    -                mcaptcha_config.config_id = mcaptcha_sitekey_user_provided_avg_traffic.config_id
    -            INNER JOIN
    -                mcaptcha_users
    -            ON
    -                mcaptcha_config.user_id = mcaptcha_users.ID
    -            ORDER BY mcaptcha_config.config_id
    -            LIMIT ? OFFSET ?",
    -            limit as i64,
    -            offset as i64
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    -        let mut res = Vec::with_capacity(inner_res.len());
    -        inner_res.drain(0..).for_each(|v| {
    -            res.push(EasyCaptcha {
    -                key: v.captcha_key,
    -                description: v.name,
    -                username: v.username,
    -                traffic_pattern: TrafficPattern {
    -                    broke_my_site_traffic: v
    -                        .broke_my_site_traffic
    -                        .as_ref()
    -                        .map(|v| *v as u32),
    -                    avg_traffic: v.avg_traffic as u32,
    -                    peak_sustainable_traffic: v.peak_sustainable_traffic as u32,
    -                },
    -            })
    -        });
    -        Ok(res)
    -    }
    -}
    -
    -#[derive(Clone)]
    -struct Date {
    -    time: OffsetDateTime,
    -}
    -
    -impl Date {
    -    fn dates_to_unix(mut d: Vec<Self>) -> Vec<i64> {
    -        let mut dates = Vec::with_capacity(d.len());
    -        d.drain(0..)
    -            .for_each(|x| dates.push(x.time.unix_timestamp()));
    -        dates
    -    }
    -}
    -
    -fn now_unix_time_stamp() -> OffsetDateTime {
    -    OffsetDateTime::now_utc()
    -}
    -
    -#[derive(Debug, Clone, PartialEq)]
    -/// Represents notification
    -pub struct InnerNotification {
    -    /// receiver name  of the notification
    -    pub name: String,
    -    /// heading of the notification
    -    pub heading: String,
    -    /// message of the notification
    -    pub message: String,
    -    /// when notification was received
    -    pub received: OffsetDateTime,
    -    /// db assigned ID of the notification
    -    pub id: i32,
    -}
    -
    -impl From<InnerNotification> for Notification {
    -    fn from(n: InnerNotification) -> Self {
    -        Notification {
    -            name: Some(n.name),
    -            heading: Some(n.heading),
    -            message: Some(n.message),
    -            received: Some(n.received.unix_timestamp()),
    -            id: Some(n.id),
    -        }
    -    }
    -}
    -
    -#[derive(Clone)]
    -struct InternaleCaptchaConfig {
    -    config_id: i32,
    -    duration: i32,
    -    name: String,
    -    captcha_key: String,
    -}
    -
    -impl From<InternaleCaptchaConfig> for Captcha {
    -    fn from(i: InternaleCaptchaConfig) -> Self {
    -        Self {
    -            config_id: i.config_id,
    -            duration: i.duration,
    -            description: i.name,
    -            key: i.captcha_key,
    -        }
    -    }
    -}
    -
    -struct PsuedoID {
    -    psuedo_id: String,
    -}
    -
    \ No newline at end of file +lib.rs - source

    db_sqlx_maria/
    lib.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::str::FromStr;
    +7
    +8use db_core::dev::*;
    +9
    +10use sqlx::mysql::MySqlPoolOptions;
    +11use sqlx::types::time::OffsetDateTime;
    +12use sqlx::ConnectOptions;
    +13use sqlx::MySqlPool;
    +14use uuid::Uuid;
    +15
    +16pub mod errors;
    +17#[cfg(test)]
    +18pub mod tests;
    +19
    +20#[derive(Clone)]
    +21pub struct Database {
    +22    pub pool: MySqlPool,
    +23}
    +24
    +25/// Use an existing database pool
    +26pub struct Conn(pub MySqlPool);
    +27
    +28/// Connect to database
    +29pub enum ConnectionOptions {
    +30    /// fresh connection
    +31    Fresh(Fresh),
    +32    /// existing connection
    +33    Existing(Conn),
    +34}
    +35
    +36pub struct Fresh {
    +37    pub pool_options: MySqlPoolOptions,
    +38    pub disable_logging: bool,
    +39    pub url: String,
    +40}
    +41
    +42pub mod dev {
    +43    pub use super::errors::*;
    +44    pub use super::Database;
    +45    pub use db_core::dev::*;
    +46    pub use sqlx::Error;
    +47}
    +48
    +49pub mod prelude {
    +50    pub use super::*;
    +51}
    +52
    +53#[async_trait]
    +54impl Connect for ConnectionOptions {
    +55    type Pool = Database;
    +56    async fn connect(self) -> DBResult<Self::Pool> {
    +57        let pool = match self {
    +58            Self::Fresh(fresh) => {
    +59                let mut connect_options =
    +60                    sqlx::mysql::MySqlConnectOptions::from_str(&fresh.url).unwrap();
    +61                if fresh.disable_logging {
    +62                    connect_options = connect_options.disable_statement_logging();
    +63                }
    +64                fresh
    +65                    .pool_options
    +66                    .connect_with(connect_options)
    +67                    .await
    +68                    .map_err(|e| DBError::DBError(Box::new(e)))?
    +69            }
    +70
    +71            Self::Existing(conn) => conn.0,
    +72        };
    +73        Ok(Database { pool })
    +74    }
    +75}
    +76
    +77use dev::*;
    +78
    +79#[async_trait]
    +80impl Migrate for Database {
    +81    async fn migrate(&self) -> DBResult<()> {
    +82        sqlx::migrate!("./migrations/")
    +83            .run(&self.pool)
    +84            .await
    +85            .map_err(|e| DBError::DBError(Box::new(e)))?;
    +86        Ok(())
    +87    }
    +88}
    +89
    +90#[async_trait]
    +91impl MCDatabase for Database {
    +92    /// ping DB
    +93    async fn ping(&self) -> bool {
    +94        use sqlx::Connection;
    +95
    +96        if let Ok(mut con) = self.pool.acquire().await {
    +97            con.ping().await.is_ok()
    +98        } else {
    +99            false
    +100        }
    +101    }
    +102
    +103    /// register a new user
    +104    async fn register(&self, p: &Register) -> DBResult<()> {
    +105        let res = if let Some(email) = &p.email {
    +106            sqlx::query!(
    +107                "insert into mcaptcha_users 
    +108        (name , password, email, secret) values (?, ?, ?, ?)",
    +109                &p.username,
    +110                &p.hash,
    +111                &email,
    +112                &p.secret,
    +113            )
    +114            .execute(&self.pool)
    +115            .await
    +116        } else {
    +117            sqlx::query!(
    +118                "INSERT INTO mcaptcha_users 
    +119        (name , password,  secret) VALUES (?, ?, ?)",
    +120                &p.username,
    +121                &p.hash,
    +122                &p.secret,
    +123            )
    +124            .execute(&self.pool)
    +125            .await
    +126        };
    +127        res.map_err(map_register_err)?;
    +128        Ok(())
    +129    }
    +130
    +131    /// delete a user
    +132    async fn delete_user(&self, username: &str) -> DBResult<()> {
    +133        sqlx::query!("DELETE FROM mcaptcha_users WHERE name = (?)", username)
    +134            .execute(&self.pool)
    +135            .await
    +136            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +137        Ok(())
    +138    }
    +139
    +140    /// check if username exists
    +141    async fn username_exists(&self, username: &str) -> DBResult<bool> {
    +142        match sqlx::query!("SELECT name from mcaptcha_users WHERE name = ?", username,)
    +143            .fetch_one(&self.pool)
    +144            .await
    +145        {
    +146            Ok(_) => Ok(true),
    +147            Err(sqlx::Error::RowNotFound) => Ok(false),
    +148            Err(e) => Err(map_register_err(e)),
    +149        }
    +150    }
    +151
    +152    /// get user email
    +153    async fn get_email(&self, username: &str) -> DBResult<Option<String>> {
    +154        struct Email {
    +155            email: Option<String>,
    +156        }
    +157
    +158        let res = sqlx::query_as!(
    +159            Email,
    +160            "SELECT email FROM mcaptcha_users WHERE name = ?",
    +161            username
    +162        )
    +163        .fetch_one(&self.pool)
    +164        .await
    +165        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +166        Ok(res.email)
    +167    }
    +168
    +169    /// check if email exists
    +170    async fn email_exists(&self, email: &str) -> DBResult<bool> {
    +171        match sqlx::query!("SELECT name from mcaptcha_users WHERE email = ?", email)
    +172            .fetch_one(&self.pool)
    +173            .await
    +174        {
    +175            Ok(_) => Ok(true),
    +176            Err(sqlx::Error::RowNotFound) => Ok(false),
    +177            Err(e) => Err(map_register_err(e)),
    +178        }
    +179    }
    +180
    +181    /// update a user's email
    +182    async fn update_email(&self, p: &UpdateEmail) -> DBResult<()> {
    +183        sqlx::query!(
    +184            "UPDATE mcaptcha_users set email = ?
    +185            WHERE name = ?",
    +186            &p.new_email,
    +187            &p.username,
    +188        )
    +189        .execute(&self.pool)
    +190        .await
    +191        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +192
    +193        Ok(())
    +194    }
    +195
    +196    /// get a user's password
    +197    async fn get_password(&self, l: &Login) -> DBResult<NameHash> {
    +198        struct Password {
    +199            name: String,
    +200            password: String,
    +201        }
    +202
    +203        let rec = match l {
    +204            Login::Username(u) => sqlx::query_as!(
    +205                Password,
    +206                r#"SELECT name, password  FROM mcaptcha_users WHERE name = ?"#,
    +207                u,
    +208            )
    +209            .fetch_one(&self.pool)
    +210            .await
    +211            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    +212
    +213            Login::Email(e) => sqlx::query_as!(
    +214                Password,
    +215                r#"SELECT name, password  FROM mcaptcha_users WHERE email = ?"#,
    +216                e,
    +217            )
    +218            .fetch_one(&self.pool)
    +219            .await
    +220            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    +221        };
    +222
    +223        let res = NameHash {
    +224            hash: rec.password,
    +225            username: rec.name,
    +226        };
    +227
    +228        Ok(res)
    +229    }
    +230
    +231    /// update user's password
    +232    async fn update_password(&self, p: &NameHash) -> DBResult<()> {
    +233        sqlx::query!(
    +234            "UPDATE mcaptcha_users set password = ?
    +235            WHERE name = ?",
    +236            &p.hash,
    +237            &p.username,
    +238        )
    +239        .execute(&self.pool)
    +240        .await
    +241        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +242
    +243        Ok(())
    +244    }
    +245
    +246    /// update username
    +247    async fn update_username(&self, current: &str, new: &str) -> DBResult<()> {
    +248        sqlx::query!(
    +249            "UPDATE mcaptcha_users set name = ?
    +250            WHERE name = ?",
    +251            new,
    +252            current,
    +253        )
    +254        .execute(&self.pool)
    +255        .await
    +256        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +257
    +258        Ok(())
    +259    }
    +260
    +261    /// get a user's secret
    +262    async fn get_secret(&self, username: &str) -> DBResult<Secret> {
    +263        let secret = sqlx::query_as!(
    +264            Secret,
    +265            r#"SELECT secret  FROM mcaptcha_users WHERE name = ?"#,
    +266            username,
    +267        )
    +268        .fetch_one(&self.pool)
    +269        .await
    +270        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +271
    +272        Ok(secret)
    +273    }
    +274
    +275    /// get a user's secret from a captcha key
    +276    async fn get_secret_from_captcha(&self, key: &str) -> DBResult<Secret> {
    +277        let secret = sqlx::query_as!(
    +278            Secret,
    +279            r#"SELECT secret  FROM mcaptcha_users WHERE ID = (
    +280                    SELECT user_id FROM mcaptcha_config WHERE captcha_key = ?
    +281                    )"#,
    +282            key,
    +283        )
    +284        .fetch_one(&self.pool)
    +285        .await
    +286        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +287
    +288        Ok(secret)
    +289    }
    +290
    +291    /// update a user's secret
    +292    async fn update_secret(&self, username: &str, secret: &str) -> DBResult<()> {
    +293        sqlx::query!(
    +294            "UPDATE mcaptcha_users set secret = ?
    +295        WHERE name = ?",
    +296            &secret,
    +297            &username,
    +298        )
    +299        .execute(&self.pool)
    +300        .await
    +301        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +302
    +303        Ok(())
    +304    }
    +305
    +306    /// create new captcha
    +307    async fn create_captcha(&self, username: &str, p: &CreateCaptcha) -> DBResult<()> {
    +308        sqlx::query!(
    +309            "INSERT INTO mcaptcha_config
    +310        (`captcha_key`, `user_id`, `duration`, `name`)
    +311        VALUES (?, (SELECT ID FROM mcaptcha_users WHERE name = ?), ?, ?)",
    +312            p.key,
    +313            username,
    +314            p.duration as i32,
    +315            p.description,
    +316        )
    +317        .execute(&self.pool)
    +318        .await
    +319        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +320
    +321        Ok(())
    +322    }
    +323
    +324    /// Get captcha config
    +325    async fn get_captcha_config(&self, username: &str, key: &str) -> DBResult<Captcha> {
    +326        let captcha = sqlx::query_as!(
    +327            InternaleCaptchaConfig,
    +328            "SELECT `config_id`, `duration`, `name`, `captcha_key` from mcaptcha_config WHERE
    +329                        `captcha_key` = ? AND
    +330                        user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?) ",
    +331            &key,
    +332            &username,
    +333        )
    +334        .fetch_one(&self.pool)
    +335        .await
    +336        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +337
    +338        Ok(captcha.into())
    +339    }
    +340
    +341    /// Get all captchas belonging to user
    +342    async fn get_all_user_captchas(&self, username: &str) -> DBResult<Vec<Captcha>> {
    +343        let mut res = sqlx::query_as!(
    +344            InternaleCaptchaConfig,
    +345            "SELECT captcha_key, name, config_id, duration FROM mcaptcha_config WHERE
    +346            user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?) ",
    +347            &username,
    +348        )
    +349        .fetch_all(&self.pool)
    +350        .await
    +351        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +352
    +353        let mut captchas = Vec::with_capacity(res.len());
    +354
    +355        res.drain(0..).for_each(|r| captchas.push(r.into()));
    +356
    +357        Ok(captchas)
    +358    }
    +359
    +360    /// update captcha metadata; doesn't change captcha key
    +361    async fn update_captcha_metadata(
    +362        &self,
    +363        username: &str,
    +364        p: &CreateCaptcha,
    +365    ) -> DBResult<()> {
    +366        sqlx::query!(
    +367            "UPDATE mcaptcha_config SET name = ?, duration = ?
    +368            WHERE user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)
    +369            AND captcha_key = ?",
    +370            p.description,
    +371            p.duration,
    +372            username,
    +373            p.key,
    +374        )
    +375        .execute(&self.pool)
    +376        .await
    +377        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +378
    +379        Ok(())
    +380    }
    +381
    +382    /// update captcha key; doesn't change metadata
    +383    async fn update_captcha_key(
    +384        &self,
    +385        username: &str,
    +386        old_key: &str,
    +387        new_key: &str,
    +388    ) -> DBResult<()> {
    +389        sqlx::query!(
    +390            "UPDATE mcaptcha_config SET captcha_key = ? 
    +391        WHERE captcha_key = ? AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)",
    +392            new_key,
    +393            old_key,
    +394            username,
    +395        )
    +396        .execute(&self.pool)
    +397        .await
    +398        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +399
    +400        Ok(())
    +401    }
    +402
    +403    /// Add levels to captcha
    +404    async fn add_captcha_levels(
    +405        &self,
    +406        username: &str,
    +407        captcha_key: &str,
    +408        levels: &[Level],
    +409    ) -> DBResult<()> {
    +410        use futures::future::try_join_all;
    +411        let mut futs = Vec::with_capacity(levels.len());
    +412
    +413        for level in levels.iter() {
    +414            let difficulty_factor = level.difficulty_factor as i32;
    +415            let visitor_threshold = level.visitor_threshold as i32;
    +416            let fut = sqlx::query!(
    +417                "INSERT INTO mcaptcha_levels (
    +418            difficulty_factor, 
    +419            visitor_threshold,
    +420            config_id) VALUES  (
    +421            ?, ?, (
    +422                SELECT config_id FROM mcaptcha_config WHERE
    +423                captcha_key = (?) AND user_id = (
    +424                SELECT ID FROM mcaptcha_users WHERE name = ?
    +425                    )));",
    +426                difficulty_factor,
    +427                visitor_threshold,
    +428                &captcha_key,
    +429                username,
    +430            )
    +431            .execute(&self.pool);
    +432            futs.push(fut);
    +433        }
    +434
    +435        try_join_all(futs)
    +436            .await
    +437            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +438
    +439        let mut futs = Vec::with_capacity(levels.len());
    +440
    +441        for level in levels.iter() {
    +442            let difficulty_factor = level.difficulty_factor as i32;
    +443            let visitor_threshold = level.visitor_threshold as i32;
    +444            let fut = sqlx::query!(
    +445                "INSERT INTO
    +446                    mcaptcha_track_nonce (level_id, nonce)
    +447                VALUES  ((
    +448                    SELECT
    +449                        level_id
    +450                    FROM
    +451                        mcaptcha_levels
    +452                    WHERE
    +453                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?)
    +454                    AND
    +455                        difficulty_factor = ?
    +456                    AND
    +457                        visitor_threshold = ?
    +458                    ), ?);",
    +459                &captcha_key,
    +460                difficulty_factor,
    +461                visitor_threshold,
    +462                0,
    +463            )
    +464            .execute(&self.pool);
    +465            futs.push(fut);
    +466        }
    +467
    +468        try_join_all(futs)
    +469            .await
    +470            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +471
    +472        Ok(())
    +473    }
    +474
    +475    /// check if captcha exists
    +476    async fn captcha_exists(
    +477        &self,
    +478        username: Option<&str>,
    +479        captcha_key: &str,
    +480    ) -> DBResult<bool> {
    +481        //        let mut exists = false;
    +482
    +483        #[allow(dead_code)]
    +484        struct ConfigId {
    +485            config_id: i32,
    +486        }
    +487        let res = match username {
    +488            Some(username) => {
    +489                sqlx::query_as!(
    +490                    ConfigId,
    +491                    "SELECT config_id FROM mcaptcha_config
    +492                        WHERE
    +493                            captcha_key = ? 
    +494                        AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)",
    +495                    captcha_key,
    +496                    username
    +497                )
    +498                .fetch_one(&self.pool)
    +499                .await
    +500                //                if let Some(x) = x.exists {
    +501                //                    exists = x;
    +502                //                };
    +503            }
    +504
    +505            None => {
    +506                sqlx::query_as!(
    +507                    ConfigId,
    +508                    "SELECT config_id from mcaptcha_config WHERE captcha_key = ?",
    +509                    &captcha_key,
    +510                )
    +511                .fetch_one(&self.pool)
    +512                .await
    +513            } //if let Some(x) = x.exists {
    +514              //    exists = x;
    +515              //};
    +516        };
    +517        match res {
    +518            Ok(_) => Ok(true),
    +519            Err(sqlx::Error::RowNotFound) => Ok(false),
    +520            Err(e) => Err(map_register_err(e)),
    +521        }
    +522    }
    +523
    +524    /// Delete all levels of a captcha
    +525    async fn delete_captcha_levels(
    +526        &self,
    +527        username: &str,
    +528        captcha_key: &str,
    +529    ) -> DBResult<()> {
    +530        sqlx::query!(
    +531            "DELETE FROM mcaptcha_levels 
    +532        WHERE config_id = (
    +533            SELECT config_id FROM mcaptcha_config where captcha_key= (?) 
    +534            AND user_id = (
    +535            SELECT ID from mcaptcha_users WHERE name = ?
    +536            )
    +537            )",
    +538            captcha_key,
    +539            username
    +540        )
    +541        .execute(&self.pool)
    +542        .await
    +543        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +544
    +545        Ok(())
    +546    }
    +547
    +548    /// Delete captcha
    +549    async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()> {
    +550        sqlx::query!(
    +551            "DELETE FROM mcaptcha_config where captcha_key= (?)
    +552                AND
    +553            user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)",
    +554            captcha_key,
    +555            username,
    +556        )
    +557        .execute(&self.pool)
    +558        .await
    +559        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +560
    +561        Ok(())
    +562    }
    +563
    +564    /// Get captcha levels
    +565    async fn get_captcha_levels(
    +566        &self,
    +567        username: Option<&str>,
    +568        captcha_key: &str,
    +569    ) -> DBResult<Vec<Level>> {
    +570        struct I32Levels {
    +571            difficulty_factor: i32,
    +572            visitor_threshold: i32,
    +573        }
    +574        let levels = match username {
    +575            None => sqlx::query_as!(
    +576                I32Levels,
    +577                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    +578            config_id = (
    +579                SELECT config_id FROM mcaptcha_config where captcha_key= (?)
    +580                ) ORDER BY difficulty_factor ASC;",
    +581                captcha_key,
    +582            )
    +583            .fetch_all(&self.pool)
    +584            .await
    +585            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    +586
    +587            Some(username) => sqlx::query_as!(
    +588                I32Levels,
    +589                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    +590            config_id = (
    +591                SELECT config_id FROM mcaptcha_config where captcha_key= (?)
    +592                AND user_id = (SELECT ID from mcaptcha_users WHERE name = ?)
    +593                )
    +594            ORDER BY difficulty_factor ASC;",
    +595                captcha_key,
    +596                username
    +597            )
    +598            .fetch_all(&self.pool)
    +599            .await
    +600            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    +601        };
    +602
    +603        let mut new_levels = Vec::with_capacity(levels.len());
    +604        for l in levels.iter() {
    +605            new_levels.push(Level {
    +606                difficulty_factor: l.difficulty_factor as u32,
    +607                visitor_threshold: l.visitor_threshold as u32,
    +608            });
    +609        }
    +610        Ok(new_levels)
    +611    }
    +612
    +613    /// Get captcha's cooldown period
    +614    async fn get_captcha_cooldown(&self, captcha_key: &str) -> DBResult<i32> {
    +615        struct DurationResp {
    +616            duration: i32,
    +617        }
    +618
    +619        let resp = sqlx::query_as!(
    +620            DurationResp,
    +621            "SELECT duration FROM mcaptcha_config  
    +622            where captcha_key= ?",
    +623            captcha_key,
    +624        )
    +625        .fetch_one(&self.pool)
    +626        .await
    +627        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +628
    +629        Ok(resp.duration)
    +630    }
    +631    /// Add traffic configuration
    +632    async fn add_traffic_pattern(
    +633        &self,
    +634        username: &str,
    +635        captcha_key: &str,
    +636        pattern: &TrafficPattern,
    +637    ) -> DBResult<()> {
    +638        sqlx::query!(
    +639            "INSERT INTO mcaptcha_sitekey_user_provided_avg_traffic (
    +640            config_id,
    +641            avg_traffic,
    +642            peak_sustainable_traffic,
    +643            broke_my_site_traffic
    +644            ) VALUES ( 
    +645             (SELECT config_id FROM mcaptcha_config where captcha_key= (?)
    +646             AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)
    +647            ), ?, ?, ?)",
    +648            //payload.avg_traffic,
    +649            captcha_key,
    +650            username,
    +651            pattern.avg_traffic as i32,
    +652            pattern.peak_sustainable_traffic as i32,
    +653            pattern.broke_my_site_traffic.as_ref().map(|v| *v as i32),
    +654        )
    +655        .execute(&self.pool)
    +656        .await
    +657        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +658        Ok(())
    +659    }
    +660
    +661    /// Get traffic configuration
    +662    async fn get_traffic_pattern(
    +663        &self,
    +664        username: &str,
    +665        captcha_key: &str,
    +666    ) -> DBResult<TrafficPattern> {
    +667        struct Traffic {
    +668            peak_sustainable_traffic: i32,
    +669            avg_traffic: i32,
    +670            broke_my_site_traffic: Option<i32>,
    +671        }
    +672        let res = sqlx::query_as!(
    +673            Traffic,
    +674            "SELECT 
    +675          avg_traffic, 
    +676          peak_sustainable_traffic, 
    +677          broke_my_site_traffic 
    +678        FROM 
    +679          mcaptcha_sitekey_user_provided_avg_traffic 
    +680        WHERE 
    +681          config_id = (
    +682            SELECT 
    +683              config_id 
    +684            FROM 
    +685              mcaptcha_config 
    +686            WHERE 
    +687              captcha_key = ? 
    +688              AND user_id = (
    +689                SELECT 
    +690                  id 
    +691                FROM 
    +692                  mcaptcha_users 
    +693                WHERE 
    +694                  NAME = ?
    +695              )
    +696          )
    +697        ",
    +698            captcha_key,
    +699            username
    +700        )
    +701        .fetch_one(&self.pool)
    +702        .await
    +703        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    +704        Ok(TrafficPattern {
    +705            broke_my_site_traffic: res.broke_my_site_traffic.as_ref().map(|v| *v as u32),
    +706            avg_traffic: res.avg_traffic as u32,
    +707            peak_sustainable_traffic: res.peak_sustainable_traffic as u32,
    +708        })
    +709    }
    +710
    +711    /// Delete traffic configuration
    +712    async fn delete_traffic_pattern(
    +713        &self,
    +714        username: &str,
    +715        captcha_key: &str,
    +716    ) -> DBResult<()> {
    +717        sqlx::query!(
    +718            "DELETE FROM mcaptcha_sitekey_user_provided_avg_traffic
    +719        WHERE config_id = (
    +720            SELECT config_id 
    +721            FROM 
    +722                mcaptcha_config 
    +723            WHERE
    +724                captcha_key = ?
    +725            AND 
    +726                user_id = (SELECT ID FROM mcaptcha_users WHERE name = ?)
    +727            );",
    +728            captcha_key,
    +729            username,
    +730        )
    +731        .execute(&self.pool)
    +732        .await
    +733        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    +734        Ok(())
    +735    }
    +736
    +737    /// create new notification
    +738    async fn create_notification(&self, p: &AddNotification) -> DBResult<()> {
    +739        let now = now_unix_time_stamp();
    +740        sqlx::query!(
    +741            "INSERT INTO mcaptcha_notifications (
    +742              heading, message, tx, rx, received)
    +743              VALUES  (
    +744              ?, ?,
    +745                  (SELECT ID FROM mcaptcha_users WHERE name = ?),
    +746                  (SELECT ID FROM mcaptcha_users WHERE name = ?),
    +747                  ?
    +748                      );",
    +749            p.heading,
    +750            p.message,
    +751            p.from,
    +752            p.to,
    +753            now
    +754        )
    +755        .execute(&self.pool)
    +756        .await
    +757        .map_err(map_register_err)?;
    +758
    +759        Ok(())
    +760    }
    +761
    +762    /// get all unread notifications
    +763    async fn get_all_unread_notifications(
    +764        &self,
    +765        username: &str,
    +766    ) -> DBResult<Vec<Notification>> {
    +767        let mut inner_notifications = sqlx::query_file_as!(
    +768            InnerNotification,
    +769            "./src/get_all_unread_notifications.sql",
    +770            &username
    +771        )
    +772        .fetch_all(&self.pool)
    +773        .await
    +774        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +775
    +776        let mut notifications = Vec::with_capacity(inner_notifications.len());
    +777
    +778        inner_notifications
    +779            .drain(0..)
    +780            .for_each(|n| notifications.push(n.into()));
    +781
    +782        Ok(notifications)
    +783    }
    +784
    +785    /// mark a notification read
    +786    async fn mark_notification_read(&self, username: &str, id: i32) -> DBResult<()> {
    +787        sqlx::query_file_as!(
    +788            Notification,
    +789            "./src/mark_notification_read.sql",
    +790            id,
    +791            &username
    +792        )
    +793        .execute(&self.pool)
    +794        .await
    +795        .map_err(|e| map_row_not_found_err(e, DBError::NotificationNotFound))?;
    +796
    +797        Ok(())
    +798    }
    +799
    +800    /// record PoWConfig fetches
    +801    async fn record_fetch(&self, key: &str) -> DBResult<()> {
    +802        let now = now_unix_time_stamp();
    +803        let _ = sqlx::query!(
    +804        "INSERT INTO mcaptcha_pow_fetched_stats 
    +805        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?)",
    +806        key,
    +807        &now,
    +808    )
    +809    .execute(&self.pool)
    +810    .await
    +811        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +812        Ok(())
    +813    }
    +814
    +815    /// record PoWConfig solves
    +816    async fn record_solve(&self, key: &str) -> DBResult<()> {
    +817        let now = OffsetDateTime::now_utc();
    +818        let _ = sqlx::query!(
    +819        "INSERT INTO mcaptcha_pow_solved_stats 
    +820        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?)",
    +821        key,
    +822        &now,
    +823    )
    +824    .execute(&self.pool)
    +825    .await
    +826    .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +827        Ok(())
    +828    }
    +829
    +830    /// record PoWConfig confirms
    +831    async fn record_confirm(&self, key: &str) -> DBResult<()> {
    +832        let now = now_unix_time_stamp();
    +833        let _ = sqlx::query!(
    +834        "INSERT INTO mcaptcha_pow_confirmed_stats 
    +835        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?)",
    +836        key,
    +837        &now
    +838    )
    +839    .execute(&self.pool)
    +840    .await
    +841        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +842        Ok(())
    +843    }
    +844
    +845    /// fetch PoWConfig fetches
    +846    async fn fetch_config_fetched(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    +847        let records = sqlx::query_as!(
    +848            Date,
    +849            "SELECT time FROM mcaptcha_pow_fetched_stats
    +850            WHERE 
    +851                config_id = (
    +852                    SELECT 
    +853                        config_id FROM mcaptcha_config 
    +854                    WHERE 
    +855                        captcha_key = ?
    +856                    AND
    +857                        user_id = (
    +858                        SELECT 
    +859                            ID FROM mcaptcha_users WHERE name = ?))
    +860                ORDER BY time DESC",
    +861            &key,
    +862            &user,
    +863        )
    +864        .fetch_all(&self.pool)
    +865        .await
    +866        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +867
    +868        Ok(Date::dates_to_unix(records))
    +869    }
    +870
    +871    /// fetch PoWConfig solves
    +872    async fn fetch_solve(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    +873        let records = sqlx::query_as!(
    +874            Date,
    +875            "SELECT time FROM mcaptcha_pow_solved_stats 
    +876            WHERE config_id = (
    +877                SELECT config_id FROM mcaptcha_config 
    +878                WHERE 
    +879                    captcha_key = ?
    +880                AND
    +881                     user_id = (
    +882                        SELECT 
    +883                            ID FROM mcaptcha_users WHERE name = ?)) 
    +884                ORDER BY time DESC",
    +885            &key,
    +886            &user
    +887        )
    +888        .fetch_all(&self.pool)
    +889        .await
    +890        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +891
    +892        Ok(Date::dates_to_unix(records))
    +893    }
    +894
    +895    /// fetch PoWConfig confirms
    +896    async fn fetch_confirm(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    +897        let records = sqlx::query_as!(
    +898            Date,
    +899            "SELECT time FROM mcaptcha_pow_confirmed_stats 
    +900            WHERE 
    +901                config_id = (
    +902                    SELECT config_id FROM mcaptcha_config 
    +903                WHERE 
    +904                    captcha_key = ?
    +905                AND
    +906                     user_id = (
    +907                        SELECT 
    +908                            ID FROM mcaptcha_users WHERE name = ?))
    +909                ORDER BY time DESC",
    +910            &key,
    +911            &user
    +912        )
    +913        .fetch_all(&self.pool)
    +914        .await
    +915        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +916
    +917        Ok(Date::dates_to_unix(records))
    +918    }
    +919
    +920    /// record PoW timing
    +921    async fn analysis_save(
    +922        &self,
    +923        captcha_id: &str,
    +924        d: &CreatePerformanceAnalytics,
    +925    ) -> DBResult<()> {
    +926        let _ = sqlx::query!(
    +927            "INSERT INTO mcaptcha_pow_analytics 
    +928            (config_id, time, difficulty_factor, worker_type)
    +929        VALUES ((SELECT config_id FROM mcaptcha_config where captcha_key= ?), ?, ?, ?)",
    +930            captcha_id,
    +931            d.time as i32,
    +932            d.difficulty_factor as i32,
    +933            &d.worker_type,
    +934        )
    +935        .execute(&self.pool)
    +936        .await
    +937        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +938        Ok(())
    +939    }
    +940
    +941    /// fetch PoW analytics
    +942    async fn analytics_fetch(
    +943        &self,
    +944        captcha_id: &str,
    +945        limit: usize,
    +946        offset: usize,
    +947    ) -> DBResult<Vec<PerformanceAnalytics>> {
    +948        struct P {
    +949            id: i32,
    +950            time: i32,
    +951            difficulty_factor: i32,
    +952            worker_type: String,
    +953        }
    +954
    +955        impl From<P> for PerformanceAnalytics {
    +956            fn from(v: P) -> Self {
    +957                Self {
    +958                    id: v.id as usize,
    +959                    time: v.time as u32,
    +960                    difficulty_factor: v.difficulty_factor as u32,
    +961                    worker_type: v.worker_type,
    +962                }
    +963            }
    +964        }
    +965
    +966        let mut c = sqlx::query_as!(
    +967            P,
    +968            "SELECT
    +969                id, time, difficulty_factor, worker_type
    +970            FROM
    +971                mcaptcha_pow_analytics
    +972            WHERE
    +973                config_id = (
    +974                    SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?
    +975                ) 
    +976            ORDER BY ID
    +977            LIMIT ? OFFSET ?",
    +978            &captcha_id,
    +979            limit as i64,
    +980            offset as i64,
    +981        )
    +982        .fetch_all(&self.pool)
    +983        .await
    +984        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +985        let mut res = Vec::with_capacity(c.len());
    +986        for i in c.drain(0..) {
    +987            res.push(i.into())
    +988        }
    +989
    +990        Ok(res)
    +991    }
    +992
    +993    /// Create psuedo ID against campaign ID to publish analytics
    +994    async fn analytics_create_psuedo_id_if_not_exists(
    +995        &self,
    +996        captcha_id: &str,
    +997    ) -> DBResult<()> {
    +998        let id = Uuid::new_v4();
    +999        sqlx::query!(
    +1000            "
    +1001            INSERT INTO
    +1002                mcaptcha_psuedo_campaign_id (config_id, psuedo_id)
    +1003            VALUES (
    +1004                (SELECT config_id FROM mcaptcha_config WHERE captcha_key = (?)),
    +1005                ?
    +1006            );",
    +1007            captcha_id,
    +1008            &id.to_string(),
    +1009        )
    +1010        .execute(&self.pool)
    +1011        .await
    +1012        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1013
    +1014        Ok(())
    +1015    }
    +1016
    +1017    /// Get psuedo ID from campaign ID
    +1018    async fn analytics_get_psuedo_id_from_capmaign_id(
    +1019        &self,
    +1020        captcha_id: &str,
    +1021    ) -> DBResult<String> {
    +1022        let res = sqlx::query_as!(
    +1023            PsuedoID,
    +1024            "SELECT psuedo_id FROM
    +1025                mcaptcha_psuedo_campaign_id
    +1026            WHERE
    +1027                 config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = (?));
    +1028            ",
    +1029            captcha_id
    +1030        ).fetch_one(&self.pool)
    +1031        .await
    +1032        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1033
    +1034        Ok(res.psuedo_id)
    +1035    }
    +1036
    +1037    /// Get campaign ID from psuedo ID
    +1038    async fn analytics_get_capmaign_id_from_psuedo_id(
    +1039        &self,
    +1040        psuedo_id: &str,
    +1041    ) -> DBResult<String> {
    +1042        struct ID {
    +1043            captcha_key: String,
    +1044        }
    +1045
    +1046        let res = sqlx::query_as!(
    +1047            ID,
    +1048            "SELECT
    +1049                captcha_key
    +1050            FROM
    +1051                mcaptcha_config
    +1052            WHERE
    +1053                 config_id = (
    +1054                     SELECT
    +1055                         config_id
    +1056                     FROM
    +1057                         mcaptcha_psuedo_campaign_id
    +1058                     WHERE
    +1059                         psuedo_id = ?
    +1060                 );",
    +1061            psuedo_id
    +1062        )
    +1063        .fetch_one(&self.pool)
    +1064        .await
    +1065        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1066        Ok(res.captcha_key)
    +1067    }
    +1068
    +1069    async fn analytics_delete_all_records_for_campaign(
    +1070        &self,
    +1071        campaign_id: &str,
    +1072    ) -> DBResult<()> {
    +1073        let _ = sqlx::query!(
    +1074            "
    +1075        DELETE FROM
    +1076            mcaptcha_psuedo_campaign_id
    +1077        WHERE config_id = (
    +1078            SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?
    +1079        );",
    +1080            campaign_id
    +1081        )
    +1082        .execute(&self.pool)
    +1083        .await;
    +1084
    +1085        let _ = sqlx::query!(
    +1086            "
    +1087            DELETE FROM
    +1088                mcaptcha_pow_analytics
    +1089            WHERE
    +1090                config_id = (
    +1091                    SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?
    +1092            ) ",
    +1093            campaign_id
    +1094        )
    +1095        .execute(&self.pool)
    +1096        .await;
    +1097
    +1098        Ok(())
    +1099    }
    +1100    /// Get all psuedo IDs
    +1101    async fn analytics_get_all_psuedo_ids(&self, page: usize) -> DBResult<Vec<String>> {
    +1102        const LIMIT: usize = 50;
    +1103        let offset = LIMIT * page;
    +1104
    +1105        let mut res = sqlx::query_as!(
    +1106            PsuedoID,
    +1107            "
    +1108                SELECT
    +1109                    psuedo_id
    +1110                FROM
    +1111                    mcaptcha_psuedo_campaign_id
    +1112                    ORDER BY ID ASC LIMIT ? OFFSET ?;",
    +1113            LIMIT as i64,
    +1114            offset as i64
    +1115        )
    +1116        .fetch_all(&self.pool)
    +1117        .await
    +1118        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1119
    +1120        Ok(res.drain(0..).map(|r| r.psuedo_id).collect())
    +1121    }
    +1122
    +1123    /// Track maximum nonce received against captcha levels
    +1124    async fn update_max_nonce_for_level(
    +1125        &self,
    +1126        captcha_key: &str,
    +1127        difficulty_factor: u32,
    +1128        latest_nonce: u32,
    +1129    ) -> DBResult<()> {
    +1130        let latest_nonce = latest_nonce as i64;
    +1131        sqlx::query!(
    +1132                "UPDATE mcaptcha_track_nonce SET nonce = ?
    +1133                WHERE level_id =  (
    +1134                    SELECT
    +1135                        level_id
    +1136                    FROM
    +1137                        mcaptcha_levels
    +1138                    WHERE
    +1139                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?)
    +1140                    AND
    +1141                        difficulty_factor = ?
    +1142                    )
    +1143                AND nonce <= ?;",
    +1144                latest_nonce,
    +1145                &captcha_key,
    +1146                difficulty_factor as i64,
    +1147                latest_nonce
    +1148            )
    +1149            .execute(&self.pool).await
    +1150        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1151
    +1152        Ok(())
    +1153    }
    +1154
    +1155    /// Get maximum nonce tracked so far for captcha levels
    +1156    async fn get_max_nonce_for_level(
    +1157        &self,
    +1158        captcha_key: &str,
    +1159        difficulty_factor: u32,
    +1160    ) -> DBResult<u32> {
    +1161        struct X {
    +1162            nonce: i32,
    +1163        }
    +1164
    +1165        async fn inner_get_max_nonce(
    +1166            pool: &MySqlPool,
    +1167            captcha_key: &str,
    +1168            difficulty_factor: u32,
    +1169        ) -> DBResult<X> {
    +1170            sqlx::query_as!(
    +1171                X,
    +1172                "SELECT nonce FROM mcaptcha_track_nonce
    +1173                WHERE level_id =  (
    +1174                    SELECT
    +1175                        level_id
    +1176                    FROM
    +1177                        mcaptcha_levels
    +1178                    WHERE
    +1179                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key = ?)
    +1180                    AND
    +1181                        difficulty_factor = ?
    +1182                    );",
    +1183                &captcha_key,
    +1184                difficulty_factor as i32,
    +1185            )
    +1186                .fetch_one(pool).await
    +1187                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))
    +1188        }
    +1189
    +1190        let res = inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await;
    +1191        if let Err(DBError::CaptchaNotFound) = res {
    +1192            sqlx::query!(
    +1193                "INSERT INTO
    +1194                    mcaptcha_track_nonce (level_id, nonce)
    +1195                VALUES  ((
    +1196                    SELECT
    +1197                        level_id
    +1198                    FROM
    +1199                        mcaptcha_levels
    +1200                    WHERE
    +1201                        config_id = (SELECT config_id FROM mcaptcha_config WHERE captcha_key =?)
    +1202                    AND
    +1203                        difficulty_factor = ?
    +1204                    ), ?);",
    +1205                &captcha_key,
    +1206                difficulty_factor as i32,
    +1207                0,
    +1208            )
    +1209            .execute(&self.pool)
    +1210            .await
    +1211                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1212
    +1213            let res =
    +1214                inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await?;
    +1215            Ok(res.nonce as u32)
    +1216        } else {
    +1217            let res = res?;
    +1218            Ok(res.nonce as u32)
    +1219        }
    +1220    }
    +1221
    +1222    /// Get number of analytics entries that are under a certain duration
    +1223    async fn stats_get_num_logs_under_time(&self, duration: u32) -> DBResult<usize> {
    +1224        struct Count {
    +1225            count: Option<i64>,
    +1226        }
    +1227
    +1228        //"SELECT COUNT(*) FROM (SELECT difficulty_factor FROM mcaptcha_pow_analytics WHERE time <= ?) as count",
    +1229        let count = sqlx::query_as!(
    +1230            Count,
    +1231            "SELECT
    +1232                COUNT(difficulty_factor) AS count
    +1233            FROM
    +1234                mcaptcha_pow_analytics
    +1235            WHERE time <= ?;",
    +1236            duration as i32,
    +1237        )
    +1238        .fetch_one(&self.pool)
    +1239        .await
    +1240        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1241
    +1242        Ok(count.count.unwrap_or_else(|| 0) as usize)
    +1243    }
    +1244
    +1245    /// Get the entry at a location in the list of analytics entires under a certain time limited
    +1246    /// and sorted in ascending order
    +1247    async fn stats_get_entry_at_location_for_time_limit_asc(
    +1248        &self,
    +1249        duration: u32,
    +1250        location: u32,
    +1251    ) -> DBResult<Option<usize>> {
    +1252        struct Difficulty {
    +1253            difficulty_factor: Option<i32>,
    +1254        }
    +1255
    +1256        match sqlx::query_as!(
    +1257            Difficulty,
    +1258            "SELECT
    +1259            difficulty_factor
    +1260        FROM
    +1261            mcaptcha_pow_analytics
    +1262        WHERE
    +1263            time <= ?
    +1264        ORDER BY difficulty_factor ASC LIMIT 1 OFFSET ?;",
    +1265            duration as i32,
    +1266            location as i64 - 1,
    +1267        )
    +1268        .fetch_one(&self.pool)
    +1269        .await
    +1270        {
    +1271            Ok(res) => Ok(Some(res.difficulty_factor.unwrap() as usize)),
    +1272            Err(sqlx::Error::RowNotFound) => Ok(None),
    +1273            Err(e) => Err(map_row_not_found_err(e, DBError::CaptchaNotFound)),
    +1274        }
    +1275    }
    +1276
    +1277    /// Get all easy captcha configurations on instance
    +1278    async fn get_all_easy_captchas(
    +1279        &self,
    +1280        limit: usize,
    +1281        offset: usize,
    +1282    ) -> DBResult<Vec<EasyCaptcha>> {
    +1283        struct InnerEasyCaptcha {
    +1284            captcha_key: String,
    +1285            name: String,
    +1286            username: String,
    +1287            peak_sustainable_traffic: i32,
    +1288            avg_traffic: i32,
    +1289            broke_my_site_traffic: Option<i32>,
    +1290        }
    +1291        let mut inner_res = sqlx::query_as!(
    +1292            InnerEasyCaptcha,
    +1293                "SELECT 
    +1294              mcaptcha_sitekey_user_provided_avg_traffic.avg_traffic, 
    +1295              mcaptcha_sitekey_user_provided_avg_traffic.peak_sustainable_traffic, 
    +1296              mcaptcha_sitekey_user_provided_avg_traffic.broke_my_site_traffic,
    +1297              mcaptcha_config.name,
    +1298              mcaptcha_users.name as username,
    +1299              mcaptcha_config.captcha_key
    +1300            FROM 
    +1301              mcaptcha_sitekey_user_provided_avg_traffic 
    +1302            INNER JOIN
    +1303                mcaptcha_config
    +1304            ON
    +1305                mcaptcha_config.config_id = mcaptcha_sitekey_user_provided_avg_traffic.config_id
    +1306            INNER JOIN
    +1307                mcaptcha_users
    +1308            ON
    +1309                mcaptcha_config.user_id = mcaptcha_users.ID
    +1310            ORDER BY mcaptcha_config.config_id
    +1311            LIMIT ? OFFSET ?",
    +1312            limit as i64,
    +1313            offset as i64
    +1314        )
    +1315        .fetch_all(&self.pool)
    +1316        .await
    +1317        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    +1318        let mut res = Vec::with_capacity(inner_res.len());
    +1319        inner_res.drain(0..).for_each(|v| {
    +1320            res.push(EasyCaptcha {
    +1321                key: v.captcha_key,
    +1322                description: v.name,
    +1323                username: v.username,
    +1324                traffic_pattern: TrafficPattern {
    +1325                    broke_my_site_traffic: v
    +1326                        .broke_my_site_traffic
    +1327                        .as_ref()
    +1328                        .map(|v| *v as u32),
    +1329                    avg_traffic: v.avg_traffic as u32,
    +1330                    peak_sustainable_traffic: v.peak_sustainable_traffic as u32,
    +1331                },
    +1332            })
    +1333        });
    +1334        Ok(res)
    +1335    }
    +1336}
    +1337
    +1338#[derive(Clone)]
    +1339struct Date {
    +1340    time: OffsetDateTime,
    +1341}
    +1342
    +1343impl Date {
    +1344    fn dates_to_unix(mut d: Vec<Self>) -> Vec<i64> {
    +1345        let mut dates = Vec::with_capacity(d.len());
    +1346        d.drain(0..)
    +1347            .for_each(|x| dates.push(x.time.unix_timestamp()));
    +1348        dates
    +1349    }
    +1350}
    +1351
    +1352fn now_unix_time_stamp() -> OffsetDateTime {
    +1353    OffsetDateTime::now_utc()
    +1354}
    +1355
    +1356#[derive(Debug, Clone, PartialEq)]
    +1357/// Represents notification
    +1358pub struct InnerNotification {
    +1359    /// receiver name  of the notification
    +1360    pub name: String,
    +1361    /// heading of the notification
    +1362    pub heading: String,
    +1363    /// message of the notification
    +1364    pub message: String,
    +1365    /// when notification was received
    +1366    pub received: OffsetDateTime,
    +1367    /// db assigned ID of the notification
    +1368    pub id: i32,
    +1369}
    +1370
    +1371impl From<InnerNotification> for Notification {
    +1372    fn from(n: InnerNotification) -> Self {
    +1373        Notification {
    +1374            name: Some(n.name),
    +1375            heading: Some(n.heading),
    +1376            message: Some(n.message),
    +1377            received: Some(n.received.unix_timestamp()),
    +1378            id: Some(n.id),
    +1379        }
    +1380    }
    +1381}
    +1382
    +1383#[derive(Clone)]
    +1384struct InternaleCaptchaConfig {
    +1385    config_id: i32,
    +1386    duration: i32,
    +1387    name: String,
    +1388    captcha_key: String,
    +1389}
    +1390
    +1391impl From<InternaleCaptchaConfig> for Captcha {
    +1392    fn from(i: InternaleCaptchaConfig) -> Self {
    +1393        Self {
    +1394            config_id: i.config_id,
    +1395            duration: i.duration,
    +1396            description: i.name,
    +1397            key: i.captcha_key,
    +1398        }
    +1399    }
    +1400}
    +1401
    +1402struct PsuedoID {
    +1403    psuedo_id: String,
    +1404}
    \ 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 aa6ce0a9..85f9da21 100644 --- a/src/db_sqlx_postgres/errors.rs.html +++ b/src/db_sqlx_postgres/errors.rs.html @@ -1,91 +1,44 @@ -errors.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! Error-handling utilities
    -use std::borrow::Cow;
    -
    -use db_core::dev::*;
    -use sqlx::Error;
    -
    -/// map custom row not found error to DB error
    -pub fn map_row_not_found_err(e: Error, row_not_found: DBError) -> DBError {
    -    if let Error::RowNotFound = e {
    -        row_not_found
    -    } else {
    -        map_register_err(e)
    -    }
    -}
    -
    -/// map postgres errors to [DBError](DBError) types
    -pub fn map_register_err(e: Error) -> DBError {
    -    if let Error::Database(err) = e {
    -        if err.code() == Some(Cow::from("23505")) {
    -            let msg = err.message();
    -            println!("{}", msg);
    -            if msg.contains("mcaptcha_users_name_key") {
    -                DBError::UsernameTaken
    -            } else if msg.contains("mcaptcha_users_email_key") {
    -                DBError::EmailTaken
    -            } else if msg.contains("mcaptcha_users_secret_key") {
    -                DBError::SecretTaken
    -            } else if msg.contains("mcaptcha_config_key_key") {
    -                DBError::CaptchaKeyTaken
    -            } else {
    -                DBError::DBError(Box::new(Error::Database(err)))
    -            }
    -        } else {
    -            DBError::DBError(Box::new(Error::Database(err)))
    -        }
    -    } else {
    -        DBError::DBError(Box::new(e))
    -    }
    -}
    -
    \ No newline at end of file +errors.rs - source

    db_sqlx_postgres/
    errors.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! Error-handling utilities
    +7use std::borrow::Cow;
    +8
    +9use db_core::dev::*;
    +10use sqlx::Error;
    +11
    +12/// map custom row not found error to DB error
    +13pub fn map_row_not_found_err(e: Error, row_not_found: DBError) -> DBError {
    +14    if let Error::RowNotFound = e {
    +15        row_not_found
    +16    } else {
    +17        map_register_err(e)
    +18    }
    +19}
    +20
    +21/// map postgres errors to [DBError](DBError) types
    +22pub fn map_register_err(e: Error) -> DBError {
    +23    if let Error::Database(err) = e {
    +24        if err.code() == Some(Cow::from("23505")) {
    +25            let msg = err.message();
    +26            println!("{}", msg);
    +27            if msg.contains("mcaptcha_users_name_key") {
    +28                DBError::UsernameTaken
    +29            } else if msg.contains("mcaptcha_users_email_key") {
    +30                DBError::EmailTaken
    +31            } else if msg.contains("mcaptcha_users_secret_key") {
    +32                DBError::SecretTaken
    +33            } else if msg.contains("mcaptcha_config_key_key") {
    +34                DBError::CaptchaKeyTaken
    +35            } else {
    +36                DBError::DBError(Box::new(Error::Database(err)))
    +37            }
    +38        } else {
    +39            DBError::DBError(Box::new(Error::Database(err)))
    +40        }
    +41    } else {
    +42        DBError::DBError(Box::new(e))
    +43    }
    +44}
    \ 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 fb42f16e..32d972d7 100644 --- a/src/db_sqlx_postgres/lib.rs.html +++ b/src/db_sqlx_postgres/lib.rs.html @@ -1,2831 +1,1414 @@ -lib.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    -400
    -401
    -402
    -403
    -404
    -405
    -406
    -407
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    -424
    -425
    -426
    -427
    -428
    -429
    -430
    -431
    -432
    -433
    -434
    -435
    -436
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    -464
    -465
    -466
    -467
    -468
    -469
    -470
    -471
    -472
    -473
    -474
    -475
    -476
    -477
    -478
    -479
    -480
    -481
    -482
    -483
    -484
    -485
    -486
    -487
    -488
    -489
    -490
    -491
    -492
    -493
    -494
    -495
    -496
    -497
    -498
    -499
    -500
    -501
    -502
    -503
    -504
    -505
    -506
    -507
    -508
    -509
    -510
    -511
    -512
    -513
    -514
    -515
    -516
    -517
    -518
    -519
    -520
    -521
    -522
    -523
    -524
    -525
    -526
    -527
    -528
    -529
    -530
    -531
    -532
    -533
    -534
    -535
    -536
    -537
    -538
    -539
    -540
    -541
    -542
    -543
    -544
    -545
    -546
    -547
    -548
    -549
    -550
    -551
    -552
    -553
    -554
    -555
    -556
    -557
    -558
    -559
    -560
    -561
    -562
    -563
    -564
    -565
    -566
    -567
    -568
    -569
    -570
    -571
    -572
    -573
    -574
    -575
    -576
    -577
    -578
    -579
    -580
    -581
    -582
    -583
    -584
    -585
    -586
    -587
    -588
    -589
    -590
    -591
    -592
    -593
    -594
    -595
    -596
    -597
    -598
    -599
    -600
    -601
    -602
    -603
    -604
    -605
    -606
    -607
    -608
    -609
    -610
    -611
    -612
    -613
    -614
    -615
    -616
    -617
    -618
    -619
    -620
    -621
    -622
    -623
    -624
    -625
    -626
    -627
    -628
    -629
    -630
    -631
    -632
    -633
    -634
    -635
    -636
    -637
    -638
    -639
    -640
    -641
    -642
    -643
    -644
    -645
    -646
    -647
    -648
    -649
    -650
    -651
    -652
    -653
    -654
    -655
    -656
    -657
    -658
    -659
    -660
    -661
    -662
    -663
    -664
    -665
    -666
    -667
    -668
    -669
    -670
    -671
    -672
    -673
    -674
    -675
    -676
    -677
    -678
    -679
    -680
    -681
    -682
    -683
    -684
    -685
    -686
    -687
    -688
    -689
    -690
    -691
    -692
    -693
    -694
    -695
    -696
    -697
    -698
    -699
    -700
    -701
    -702
    -703
    -704
    -705
    -706
    -707
    -708
    -709
    -710
    -711
    -712
    -713
    -714
    -715
    -716
    -717
    -718
    -719
    -720
    -721
    -722
    -723
    -724
    -725
    -726
    -727
    -728
    -729
    -730
    -731
    -732
    -733
    -734
    -735
    -736
    -737
    -738
    -739
    -740
    -741
    -742
    -743
    -744
    -745
    -746
    -747
    -748
    -749
    -750
    -751
    -752
    -753
    -754
    -755
    -756
    -757
    -758
    -759
    -760
    -761
    -762
    -763
    -764
    -765
    -766
    -767
    -768
    -769
    -770
    -771
    -772
    -773
    -774
    -775
    -776
    -777
    -778
    -779
    -780
    -781
    -782
    -783
    -784
    -785
    -786
    -787
    -788
    -789
    -790
    -791
    -792
    -793
    -794
    -795
    -796
    -797
    -798
    -799
    -800
    -801
    -802
    -803
    -804
    -805
    -806
    -807
    -808
    -809
    -810
    -811
    -812
    -813
    -814
    -815
    -816
    -817
    -818
    -819
    -820
    -821
    -822
    -823
    -824
    -825
    -826
    -827
    -828
    -829
    -830
    -831
    -832
    -833
    -834
    -835
    -836
    -837
    -838
    -839
    -840
    -841
    -842
    -843
    -844
    -845
    -846
    -847
    -848
    -849
    -850
    -851
    -852
    -853
    -854
    -855
    -856
    -857
    -858
    -859
    -860
    -861
    -862
    -863
    -864
    -865
    -866
    -867
    -868
    -869
    -870
    -871
    -872
    -873
    -874
    -875
    -876
    -877
    -878
    -879
    -880
    -881
    -882
    -883
    -884
    -885
    -886
    -887
    -888
    -889
    -890
    -891
    -892
    -893
    -894
    -895
    -896
    -897
    -898
    -899
    -900
    -901
    -902
    -903
    -904
    -905
    -906
    -907
    -908
    -909
    -910
    -911
    -912
    -913
    -914
    -915
    -916
    -917
    -918
    -919
    -920
    -921
    -922
    -923
    -924
    -925
    -926
    -927
    -928
    -929
    -930
    -931
    -932
    -933
    -934
    -935
    -936
    -937
    -938
    -939
    -940
    -941
    -942
    -943
    -944
    -945
    -946
    -947
    -948
    -949
    -950
    -951
    -952
    -953
    -954
    -955
    -956
    -957
    -958
    -959
    -960
    -961
    -962
    -963
    -964
    -965
    -966
    -967
    -968
    -969
    -970
    -971
    -972
    -973
    -974
    -975
    -976
    -977
    -978
    -979
    -980
    -981
    -982
    -983
    -984
    -985
    -986
    -987
    -988
    -989
    -990
    -991
    -992
    -993
    -994
    -995
    -996
    -997
    -998
    -999
    -1000
    -1001
    -1002
    -1003
    -1004
    -1005
    -1006
    -1007
    -1008
    -1009
    -1010
    -1011
    -1012
    -1013
    -1014
    -1015
    -1016
    -1017
    -1018
    -1019
    -1020
    -1021
    -1022
    -1023
    -1024
    -1025
    -1026
    -1027
    -1028
    -1029
    -1030
    -1031
    -1032
    -1033
    -1034
    -1035
    -1036
    -1037
    -1038
    -1039
    -1040
    -1041
    -1042
    -1043
    -1044
    -1045
    -1046
    -1047
    -1048
    -1049
    -1050
    -1051
    -1052
    -1053
    -1054
    -1055
    -1056
    -1057
    -1058
    -1059
    -1060
    -1061
    -1062
    -1063
    -1064
    -1065
    -1066
    -1067
    -1068
    -1069
    -1070
    -1071
    -1072
    -1073
    -1074
    -1075
    -1076
    -1077
    -1078
    -1079
    -1080
    -1081
    -1082
    -1083
    -1084
    -1085
    -1086
    -1087
    -1088
    -1089
    -1090
    -1091
    -1092
    -1093
    -1094
    -1095
    -1096
    -1097
    -1098
    -1099
    -1100
    -1101
    -1102
    -1103
    -1104
    -1105
    -1106
    -1107
    -1108
    -1109
    -1110
    -1111
    -1112
    -1113
    -1114
    -1115
    -1116
    -1117
    -1118
    -1119
    -1120
    -1121
    -1122
    -1123
    -1124
    -1125
    -1126
    -1127
    -1128
    -1129
    -1130
    -1131
    -1132
    -1133
    -1134
    -1135
    -1136
    -1137
    -1138
    -1139
    -1140
    -1141
    -1142
    -1143
    -1144
    -1145
    -1146
    -1147
    -1148
    -1149
    -1150
    -1151
    -1152
    -1153
    -1154
    -1155
    -1156
    -1157
    -1158
    -1159
    -1160
    -1161
    -1162
    -1163
    -1164
    -1165
    -1166
    -1167
    -1168
    -1169
    -1170
    -1171
    -1172
    -1173
    -1174
    -1175
    -1176
    -1177
    -1178
    -1179
    -1180
    -1181
    -1182
    -1183
    -1184
    -1185
    -1186
    -1187
    -1188
    -1189
    -1190
    -1191
    -1192
    -1193
    -1194
    -1195
    -1196
    -1197
    -1198
    -1199
    -1200
    -1201
    -1202
    -1203
    -1204
    -1205
    -1206
    -1207
    -1208
    -1209
    -1210
    -1211
    -1212
    -1213
    -1214
    -1215
    -1216
    -1217
    -1218
    -1219
    -1220
    -1221
    -1222
    -1223
    -1224
    -1225
    -1226
    -1227
    -1228
    -1229
    -1230
    -1231
    -1232
    -1233
    -1234
    -1235
    -1236
    -1237
    -1238
    -1239
    -1240
    -1241
    -1242
    -1243
    -1244
    -1245
    -1246
    -1247
    -1248
    -1249
    -1250
    -1251
    -1252
    -1253
    -1254
    -1255
    -1256
    -1257
    -1258
    -1259
    -1260
    -1261
    -1262
    -1263
    -1264
    -1265
    -1266
    -1267
    -1268
    -1269
    -1270
    -1271
    -1272
    -1273
    -1274
    -1275
    -1276
    -1277
    -1278
    -1279
    -1280
    -1281
    -1282
    -1283
    -1284
    -1285
    -1286
    -1287
    -1288
    -1289
    -1290
    -1291
    -1292
    -1293
    -1294
    -1295
    -1296
    -1297
    -1298
    -1299
    -1300
    -1301
    -1302
    -1303
    -1304
    -1305
    -1306
    -1307
    -1308
    -1309
    -1310
    -1311
    -1312
    -1313
    -1314
    -1315
    -1316
    -1317
    -1318
    -1319
    -1320
    -1321
    -1322
    -1323
    -1324
    -1325
    -1326
    -1327
    -1328
    -1329
    -1330
    -1331
    -1332
    -1333
    -1334
    -1335
    -1336
    -1337
    -1338
    -1339
    -1340
    -1341
    -1342
    -1343
    -1344
    -1345
    -1346
    -1347
    -1348
    -1349
    -1350
    -1351
    -1352
    -1353
    -1354
    -1355
    -1356
    -1357
    -1358
    -1359
    -1360
    -1361
    -1362
    -1363
    -1364
    -1365
    -1366
    -1367
    -1368
    -1369
    -1370
    -1371
    -1372
    -1373
    -1374
    -1375
    -1376
    -1377
    -1378
    -1379
    -1380
    -1381
    -1382
    -1383
    -1384
    -1385
    -1386
    -1387
    -1388
    -1389
    -1390
    -1391
    -1392
    -1393
    -1394
    -1395
    -1396
    -1397
    -1398
    -1399
    -1400
    -1401
    -1402
    -1403
    -1404
    -1405
    -1406
    -1407
    -1408
    -1409
    -1410
    -1411
    -1412
    -1413
    -1414
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::str::FromStr;
    -
    -use db_core::dev::*;
    -
    -use sqlx::postgres::PgPoolOptions;
    -use sqlx::types::time::OffsetDateTime;
    -use sqlx::ConnectOptions;
    -use sqlx::PgPool;
    -use uuid::Uuid;
    -
    -pub mod errors;
    -#[cfg(test)]
    -pub mod tests;
    -
    -#[derive(Clone)]
    -pub struct Database {
    -    pub pool: PgPool,
    -}
    -
    -/// Use an existing database pool
    -pub struct Conn(pub PgPool);
    -
    -/// Connect to database
    -pub enum ConnectionOptions {
    -    /// fresh connection
    -    Fresh(Fresh),
    -    /// existing connection
    -    Existing(Conn),
    -}
    -
    -pub struct Fresh {
    -    pub pool_options: PgPoolOptions,
    -    pub disable_logging: bool,
    -    pub url: String,
    -}
    -
    -pub mod dev {
    -    pub use super::errors::*;
    -    pub use super::Database;
    -    pub use db_core::dev::*;
    -    pub use sqlx::Error;
    -}
    -
    -pub mod prelude {
    -    pub use super::*;
    -}
    -
    -#[async_trait]
    -impl Connect for ConnectionOptions {
    -    type Pool = Database;
    -    async fn connect(self) -> DBResult<Self::Pool> {
    -        let pool = match self {
    -            Self::Fresh(fresh) => {
    -                let mut connect_options =
    -                    sqlx::postgres::PgConnectOptions::from_str(&fresh.url).unwrap();
    -                if fresh.disable_logging {
    -                    connect_options = connect_options.disable_statement_logging();
    -                }
    -                fresh
    -                    .pool_options
    -                    .connect_with(connect_options)
    -                    .await
    -                    .map_err(|e| DBError::DBError(Box::new(e)))?
    -            }
    -
    -            Self::Existing(conn) => conn.0,
    -        };
    -        Ok(Database { pool })
    -    }
    -}
    -
    -use dev::*;
    -
    -#[async_trait]
    -impl Migrate for Database {
    -    async fn migrate(&self) -> DBResult<()> {
    -        sqlx::migrate!("./migrations/")
    -            .run(&self.pool)
    -            .await
    -            .map_err(|e| DBError::DBError(Box::new(e)))?;
    -        Ok(())
    -    }
    -}
    -
    -#[async_trait]
    -impl MCDatabase for Database {
    -    /// ping DB
    -    async fn ping(&self) -> bool {
    -        use sqlx::Connection;
    -
    -        if let Ok(mut con) = self.pool.acquire().await {
    -            con.ping().await.is_ok()
    -        } else {
    -            false
    -        }
    -    }
    -
    -    /// register a new user
    -    async fn register(&self, p: &Register) -> DBResult<()> {
    -        let res = if let Some(email) = &p.email {
    -            sqlx::query!(
    -                "insert into mcaptcha_users 
    -        (name , password, email, secret) values ($1, $2, $3, $4)",
    -                &p.username,
    -                &p.hash,
    -                &email,
    -                &p.secret,
    -            )
    -            .execute(&self.pool)
    -            .await
    -        } else {
    -            sqlx::query!(
    -                "INSERT INTO mcaptcha_users 
    -        (name , password,  secret) VALUES ($1, $2, $3)",
    -                &p.username,
    -                &p.hash,
    -                &p.secret,
    -            )
    -            .execute(&self.pool)
    -            .await
    -        };
    -        res.map_err(map_register_err)?;
    -        Ok(())
    -    }
    -
    -    /// delete a user
    -    async fn delete_user(&self, username: &str) -> DBResult<()> {
    -        sqlx::query!("DELETE FROM mcaptcha_users WHERE name = ($1)", username)
    -            .execute(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// check if username exists
    -    async fn username_exists(&self, username: &str) -> DBResult<bool> {
    -        let res = sqlx::query!(
    -            "SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE name = $1)",
    -            username,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(map_register_err)?;
    -
    -        let mut resp = false;
    -        if let Some(x) = res.exists {
    -            resp = x;
    -        }
    -
    -        Ok(resp)
    -    }
    -
    -    /// get user email
    -    async fn get_email(&self, username: &str) -> DBResult<Option<String>> {
    -        struct Email {
    -            email: Option<String>,
    -        }
    -
    -        let res = sqlx::query_as!(
    -            Email,
    -            "SELECT email FROM mcaptcha_users WHERE name = $1",
    -            username
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -        Ok(res.email)
    -    }
    -
    -    /// check if email exists
    -    async fn email_exists(&self, email: &str) -> DBResult<bool> {
    -        let res = sqlx::query!(
    -            "SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE email = $1)",
    -            email
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(map_register_err)?;
    -
    -        let mut resp = false;
    -        if let Some(x) = res.exists {
    -            resp = x;
    -        }
    -
    -        Ok(resp)
    -    }
    -
    -    /// update a user's email
    -    async fn update_email(&self, p: &UpdateEmail) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set email = $1
    -            WHERE name = $2",
    -            &p.new_email,
    -            &p.username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// get a user's password
    -    async fn get_password(&self, l: &Login) -> DBResult<NameHash> {
    -        struct Password {
    -            name: String,
    -            password: String,
    -        }
    -
    -        let rec = match l {
    -            Login::Username(u) => sqlx::query_as!(
    -                Password,
    -                r#"SELECT name, password  FROM mcaptcha_users WHERE name = ($1)"#,
    -                u,
    -            )
    -            .fetch_one(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    -
    -            Login::Email(e) => sqlx::query_as!(
    -                Password,
    -                r#"SELECT name, password  FROM mcaptcha_users WHERE email = ($1)"#,
    -                e,
    -            )
    -            .fetch_one(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    -        };
    -
    -        let res = NameHash {
    -            hash: rec.password,
    -            username: rec.name,
    -        };
    -
    -        Ok(res)
    -    }
    -
    -    /// update user's password
    -    async fn update_password(&self, p: &NameHash) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set password = $1
    -            WHERE name = $2",
    -            &p.hash,
    -            &p.username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// update username
    -    async fn update_username(&self, current: &str, new: &str) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set name = $1
    -            WHERE name = $2",
    -            new,
    -            current,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// get a user's secret
    -    async fn get_secret(&self, username: &str) -> DBResult<Secret> {
    -        let secret = sqlx::query_as!(
    -            Secret,
    -            r#"SELECT secret  FROM mcaptcha_users WHERE name = ($1)"#,
    -            username,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(secret)
    -    }
    -
    -    /// get a user's secret from a captcha key
    -    async fn get_secret_from_captcha(&self, key: &str) -> DBResult<Secret> {
    -        let secret = sqlx::query_as!(
    -            Secret,
    -            r#"SELECT secret  FROM mcaptcha_users WHERE ID = (
    -                    SELECT user_id FROM mcaptcha_config WHERE key = $1
    -                    )"#,
    -            key,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(secret)
    -    }
    -
    -    /// update a user's secret
    -    async fn update_secret(&self, username: &str, secret: &str) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_users set secret = $1
    -        WHERE name = $2",
    -            &secret,
    -            &username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// create new captcha
    -    async fn create_captcha(&self, username: &str, p: &CreateCaptcha) -> DBResult<()> {
    -        sqlx::query!(
    -            "INSERT INTO mcaptcha_config
    -        (key, user_id, duration, name)
    -        VALUES ($1, (SELECT ID FROM mcaptcha_users WHERE name = $2), $3, $4)",
    -            p.key,
    -            username,
    -            p.duration as i32,
    -            p.description,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get captcha config
    -    async fn get_captcha_config(&self, username: &str, key: &str) -> DBResult<Captcha> {
    -        let captcha = sqlx::query_as!(
    -            InternaleCaptchaConfig,
    -            "SELECT config_id, duration, name, key from mcaptcha_config WHERE
    -                        key = $1 AND
    -                        user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2) ",
    -            &key,
    -            &username,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(captcha.into())
    -    }
    -
    -    /// Get all captchas belonging to user
    -    async fn get_all_user_captchas(&self, username: &str) -> DBResult<Vec<Captcha>> {
    -        let mut res = sqlx::query_as!(
    -            InternaleCaptchaConfig,
    -            "SELECT key, name, config_id, duration FROM mcaptcha_config WHERE
    -            user_id = (SELECT ID FROM mcaptcha_users WHERE name = $1) ",
    -            &username,
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        let mut captchas = Vec::with_capacity(res.len());
    -
    -        res.drain(0..).for_each(|r| captchas.push(r.into()));
    -
    -        Ok(captchas)
    -    }
    -
    -    /// update captcha metadata; doesn't change captcha key
    -    async fn update_captcha_metadata(
    -        &self,
    -        username: &str,
    -        p: &CreateCaptcha,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_config SET name = $1, duration = $2
    -            WHERE user_id = (SELECT ID FROM mcaptcha_users WHERE name = $3)
    -            AND key = $4",
    -            p.description,
    -            p.duration,
    -            username,
    -            p.key,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// update captcha key; doesn't change metadata
    -    async fn update_captcha_key(
    -        &self,
    -        username: &str,
    -        old_key: &str,
    -        new_key: &str,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "UPDATE mcaptcha_config SET key = $1 
    -        WHERE key = $2 AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = $3)",
    -            new_key,
    -            old_key,
    -            username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Add levels to captcha
    -    async fn add_captcha_levels(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -        levels: &[Level],
    -    ) -> DBResult<()> {
    -        use futures::future::try_join_all;
    -        let mut futs = Vec::with_capacity(levels.len());
    -
    -        for level in levels.iter() {
    -            let difficulty_factor = level.difficulty_factor as i32;
    -            let visitor_threshold = level.visitor_threshold as i32;
    -            let fut = sqlx::query!(
    -                "INSERT INTO mcaptcha_levels (
    -            difficulty_factor, 
    -            visitor_threshold,
    -            config_id) VALUES  (
    -            $1, $2, (
    -                SELECT config_id FROM mcaptcha_config WHERE
    -                key = ($3) AND user_id = (
    -                SELECT ID FROM mcaptcha_users WHERE name = $4
    -                    )));",
    -                difficulty_factor,
    -                visitor_threshold,
    -                &captcha_key,
    -                username,
    -            )
    -            .execute(&self.pool);
    -            futs.push(fut);
    -        }
    -
    -        try_join_all(futs)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        let mut futs = Vec::with_capacity(levels.len());
    -        for level in levels.iter() {
    -            let difficulty_factor = level.difficulty_factor as i32;
    -            let visitor_threshold = level.visitor_threshold as i32;
    -            let fut = sqlx::query!(
    -                "INSERT INTO
    -                    mcaptcha_track_nonce (level_id, nonce)
    -                VALUES  ((
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    -                    AND
    -                        difficulty_factor = $2
    -                    AND
    -                        visitor_threshold = $3
    -                    ), $4);",
    -                &captcha_key,
    -                difficulty_factor,
    -                visitor_threshold,
    -                0,
    -            )
    -            .execute(&self.pool);
    -            futs.push(fut);
    -        }
    -
    -        try_join_all(futs)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// check if captcha exists
    -    async fn captcha_exists(
    -        &self,
    -        username: Option<&str>,
    -        captcha_key: &str,
    -    ) -> DBResult<bool> {
    -        let mut exists = false;
    -
    -        match username {
    -            Some(username) => {
    -                let x = sqlx::query!(
    -                    "SELECT EXISTS (
    -            SELECT 1 from mcaptcha_config WHERE key = $1 
    -            AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)
    -            )",
    -                    captcha_key,
    -                    username
    -                )
    -                .fetch_one(&self.pool)
    -                .await
    -                .map_err(map_register_err)?;
    -                if let Some(x) = x.exists {
    -                    exists = x;
    -                };
    -            }
    -
    -            None => {
    -                let x = sqlx::query!(
    -                    "SELECT EXISTS (SELECT 1 from mcaptcha_config WHERE key = $1)",
    -                    &captcha_key,
    -                )
    -                .fetch_one(&self.pool)
    -                .await
    -                .map_err(map_register_err)?;
    -                if let Some(x) = x.exists {
    -                    exists = x;
    -                };
    -            }
    -        };
    -
    -        Ok(exists)
    -    }
    -
    -    /// Delete all levels of a captcha
    -    async fn delete_captcha_levels(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "DELETE FROM mcaptcha_levels 
    -        WHERE config_id = (
    -            SELECT config_id FROM mcaptcha_config where key = ($1) 
    -            AND user_id = (
    -            SELECT ID from mcaptcha_users WHERE name = $2
    -            )
    -            )",
    -            captcha_key,
    -            username
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Delete captcha
    -    async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()> {
    -        sqlx::query!(
    -            "DELETE FROM mcaptcha_config WHERE key = ($1)
    -                AND
    -            user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)",
    -            captcha_key,
    -            username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get captcha levels
    -    async fn get_captcha_levels(
    -        &self,
    -        username: Option<&str>,
    -        captcha_key: &str,
    -    ) -> DBResult<Vec<Level>> {
    -        struct I32Levels {
    -            difficulty_factor: i32,
    -            visitor_threshold: i32,
    -        }
    -        let levels = match username {
    -            None => sqlx::query_as!(
    -                I32Levels,
    -                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    -            config_id = (
    -                SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    -                ) ORDER BY difficulty_factor ASC;",
    -                captcha_key,
    -            )
    -            .fetch_all(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    -
    -            Some(username) => sqlx::query_as!(
    -                I32Levels,
    -                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    -            config_id = (
    -                SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    -                AND user_id = (SELECT ID from mcaptcha_users WHERE name = $2)
    -                )
    -            ORDER BY difficulty_factor ASC;",
    -                captcha_key,
    -                username
    -            )
    -            .fetch_all(&self.pool)
    -            .await
    -            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    -        };
    -
    -        let mut new_levels = Vec::with_capacity(levels.len());
    -        for l in levels.iter() {
    -            new_levels.push(Level {
    -                difficulty_factor: l.difficulty_factor as u32,
    -                visitor_threshold: l.visitor_threshold as u32,
    -            });
    -        }
    -        Ok(new_levels)
    -    }
    -
    -    /// Get captcha's cooldown period
    -    async fn get_captcha_cooldown(&self, captcha_key: &str) -> DBResult<i32> {
    -        struct DurationResp {
    -            duration: i32,
    -        }
    -
    -        let resp = sqlx::query_as!(
    -            DurationResp,
    -            "SELECT duration FROM mcaptcha_config  
    -            WHERE key = $1",
    -            captcha_key,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(resp.duration)
    -    }
    -    /// Add traffic configuration
    -    async fn add_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -        pattern: &TrafficPattern,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "INSERT INTO mcaptcha_sitekey_user_provided_avg_traffic (
    -            config_id,
    -            avg_traffic,
    -            peak_sustainable_traffic,
    -            broke_my_site_traffic
    -            ) VALUES ( 
    -             (SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    -             AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)
    -            ), $3, $4, $5)",
    -            //payload.avg_traffic,
    -            captcha_key,
    -            username,
    -            pattern.avg_traffic as i32,
    -            pattern.peak_sustainable_traffic as i32,
    -            pattern.broke_my_site_traffic.as_ref().map(|v| *v as i32),
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// Get traffic configuration
    -    async fn get_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<TrafficPattern> {
    -        let res = sqlx::query_as!(
    -            InnerTraffic,
    -            "SELECT 
    -          avg_traffic, 
    -          peak_sustainable_traffic, 
    -          broke_my_site_traffic 
    -        FROM 
    -          mcaptcha_sitekey_user_provided_avg_traffic 
    -        WHERE 
    -          config_id = (
    -            SELECT 
    -              config_id 
    -            FROM 
    -              mcaptcha_config 
    -            WHERE 
    -              KEY = $1 
    -              AND user_id = (
    -                SELECT 
    -                  id 
    -                FROM 
    -                  mcaptcha_users 
    -                WHERE 
    -                  NAME = $2
    -              )
    -          )
    -        ",
    -            captcha_key,
    -            username
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    -        Ok(res.into())
    -    }
    -
    -    /// Get all easy captcha configurations on instance
    -    async fn get_all_easy_captchas(
    -        &self,
    -        limit: usize,
    -        offset: usize,
    -    ) -> DBResult<Vec<EasyCaptcha>> {
    -        struct InnerEasyCaptcha {
    -            key: String,
    -            peak_sustainable_traffic: i32,
    -            avg_traffic: i32,
    -            broke_my_site_traffic: Option<i32>,
    -            name: String,
    -            username: String,
    -        }
    -        let mut inner_res = sqlx::query_as!(
    -            InnerEasyCaptcha,
    -            "SELECT 
    -                  mcaptcha_sitekey_user_provided_avg_traffic.avg_traffic, 
    -                  mcaptcha_sitekey_user_provided_avg_traffic.peak_sustainable_traffic, 
    -                  mcaptcha_sitekey_user_provided_avg_traffic.broke_my_site_traffic,
    -                  mcaptcha_config.name,
    -                  mcaptcha_users.name as username,
    -                  mcaptcha_config.key
    -            FROM 
    -              mcaptcha_sitekey_user_provided_avg_traffic 
    -            INNER JOIN
    -                mcaptcha_config
    -            ON
    -                mcaptcha_config.config_id = mcaptcha_sitekey_user_provided_avg_traffic.config_id
    -            INNER JOIN
    -                mcaptcha_users
    -            ON
    -                mcaptcha_config.user_id = mcaptcha_users.ID
    -            ORDER BY mcaptcha_config.config_id
    -            OFFSET $1 LIMIT $2; ",
    -            offset as i32,
    -            limit as i32
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    -        let mut res = Vec::with_capacity(inner_res.len());
    -        inner_res.drain(0..).for_each(|v| {
    -            res.push(EasyCaptcha {
    -                key: v.key,
    -                description: v.name,
    -                username: v.username,
    -                traffic_pattern: TrafficPattern {
    -                    broke_my_site_traffic: v
    -                        .broke_my_site_traffic
    -                        .as_ref()
    -                        .map(|v| *v as u32),
    -                    avg_traffic: v.avg_traffic as u32,
    -                    peak_sustainable_traffic: v.peak_sustainable_traffic as u32,
    -                },
    -            })
    -        });
    -        Ok(res)
    -    }
    -
    -    /// Delete traffic configuration
    -    async fn delete_traffic_pattern(
    -        &self,
    -        username: &str,
    -        captcha_key: &str,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -            "DELETE FROM mcaptcha_sitekey_user_provided_avg_traffic
    -        WHERE config_id = (
    -            SELECT config_id 
    -            FROM 
    -                mcaptcha_config 
    -            WHERE
    -                key = ($1) 
    -            AND 
    -                user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)
    -            );",
    -            captcha_key,
    -            username,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// create new notification
    -    async fn create_notification(&self, p: &AddNotification) -> DBResult<()> {
    -        let now = now_unix_time_stamp();
    -        sqlx::query!(
    -            "INSERT INTO mcaptcha_notifications (
    -              heading, message, tx, rx, received)
    -              VALUES  (
    -              $1, $2,
    -                  (SELECT ID FROM mcaptcha_users WHERE name = $3),
    -                  (SELECT ID FROM mcaptcha_users WHERE name = $4),
    -                  $5
    -                      );",
    -            p.heading,
    -            p.message,
    -            p.from,
    -            p.to,
    -            now
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(map_register_err)?;
    -
    -        Ok(())
    -    }
    -
    -    /// get all unread notifications
    -    async fn get_all_unread_notifications(
    -        &self,
    -        username: &str,
    -    ) -> DBResult<Vec<Notification>> {
    -        let mut inner_notifications = sqlx::query_file_as!(
    -            InnerNotification,
    -            "./src/get_all_unread_notifications.sql",
    -            &username
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    -
    -        let mut notifications = Vec::with_capacity(inner_notifications.len());
    -
    -        inner_notifications
    -            .drain(0..)
    -            .for_each(|n| notifications.push(n.into()));
    -
    -        Ok(notifications)
    -    }
    -
    -    /// mark a notification read
    -    async fn mark_notification_read(&self, username: &str, id: i32) -> DBResult<()> {
    -        sqlx::query_file_as!(
    -            Notification,
    -            "./src/mark_notification_read.sql",
    -            id,
    -            &username
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::NotificationNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig fetches
    -    async fn record_fetch(&self, key: &str) -> DBResult<()> {
    -        let now = now_unix_time_stamp();
    -        let _ = sqlx::query!(
    -        "INSERT INTO mcaptcha_pow_fetched_stats 
    -        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2)",
    -        key,
    -        &now,
    -    )
    -    .execute(&self.pool)
    -    .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig solves
    -    async fn record_solve(&self, key: &str) -> DBResult<()> {
    -        let now = OffsetDateTime::now_utc();
    -        let _ = sqlx::query!(
    -        "INSERT INTO mcaptcha_pow_solved_stats 
    -        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2)",
    -        key,
    -        &now,
    -    )
    -    .execute(&self.pool)
    -    .await
    -    .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig confirms
    -    async fn record_confirm(&self, key: &str) -> DBResult<()> {
    -        let now = now_unix_time_stamp();
    -        let _ = sqlx::query!(
    -        "INSERT INTO mcaptcha_pow_confirmed_stats 
    -        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2)",
    -        key,
    -        &now
    -    )
    -    .execute(&self.pool)
    -    .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// fetch PoWConfig fetches
    -    async fn fetch_config_fetched(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    -        let records = sqlx::query_as!(
    -            Date,
    -            "SELECT time FROM mcaptcha_pow_fetched_stats
    -            WHERE 
    -                config_id = (
    -                    SELECT 
    -                        config_id FROM mcaptcha_config 
    -                    WHERE 
    -                        key = $1
    -                    AND
    -                        user_id = (
    -                        SELECT 
    -                            ID FROM mcaptcha_users WHERE name = $2))
    -                ORDER BY time DESC",
    -            &key,
    -            &user,
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(Date::dates_to_unix(records))
    -    }
    -
    -    /// fetch PoWConfig solves
    -    async fn fetch_solve(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    -        let records = sqlx::query_as!(
    -            Date,
    -            "SELECT time FROM mcaptcha_pow_solved_stats 
    -            WHERE config_id = (
    -                SELECT config_id FROM mcaptcha_config 
    -                WHERE 
    -                    key = $1
    -                AND
    -                     user_id = (
    -                        SELECT 
    -                            ID FROM mcaptcha_users WHERE name = $2)) 
    -                ORDER BY time DESC",
    -            &key,
    -            &user
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(Date::dates_to_unix(records))
    -    }
    -
    -    /// fetch PoWConfig confirms
    -    async fn fetch_confirm(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    -        let records = sqlx::query_as!(
    -            Date,
    -            "SELECT time FROM mcaptcha_pow_confirmed_stats 
    -            WHERE 
    -                config_id = (
    -                    SELECT config_id FROM mcaptcha_config 
    -                WHERE 
    -                    key = $1
    -                AND
    -                     user_id = (
    -                        SELECT 
    -                            ID FROM mcaptcha_users WHERE name = $2))
    -                ORDER BY time DESC",
    -            &key,
    -            &user
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(Date::dates_to_unix(records))
    -    }
    -
    -    /// record PoW timing
    -    async fn analysis_save(
    -        &self,
    -        captcha_id: &str,
    -        d: &CreatePerformanceAnalytics,
    -    ) -> DBResult<()> {
    -        let _ = sqlx::query!(
    -            "INSERT INTO mcaptcha_pow_analytics 
    -        (config_id, time, difficulty_factor, worker_type)
    -        VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2, $3, $4)",
    -            captcha_id,
    -            d.time as i32,
    -            d.difficulty_factor as i32,
    -            &d.worker_type,
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(())
    -    }
    -
    -    /// fetch PoW analytics
    -    async fn analytics_fetch(
    -        &self,
    -        captcha_id: &str,
    -        limit: usize,
    -        offset: usize,
    -    ) -> DBResult<Vec<PerformanceAnalytics>> {
    -        struct P {
    -            id: i32,
    -            time: i32,
    -            difficulty_factor: i32,
    -            worker_type: String,
    -        }
    -
    -        impl From<P> for PerformanceAnalytics {
    -            fn from(v: P) -> Self {
    -                Self {
    -                    time: v.time as u32,
    -                    difficulty_factor: v.difficulty_factor as u32,
    -                    worker_type: v.worker_type,
    -                    id: v.id as usize,
    -                }
    -            }
    -        }
    -
    -        let mut c = sqlx::query_as!(
    -            P,
    -            "SELECT id, time, difficulty_factor, worker_type FROM mcaptcha_pow_analytics
    -            WHERE 
    -                config_id = (
    -                    SELECT 
    -                        config_id FROM mcaptcha_config 
    -                    WHERE 
    -                        key = $1
    -                        )
    -                ORDER BY ID
    -                OFFSET $2 LIMIT $3
    -                ",
    -            &captcha_id,
    -            offset as i32,
    -            limit as i32
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        let mut res = Vec::with_capacity(c.len());
    -        for i in c.drain(0..) {
    -            res.push(i.into())
    -        }
    -
    -        Ok(res)
    -    }
    -
    -    /// Create psuedo ID against campaign ID to publish analytics
    -    async fn analytics_create_psuedo_id_if_not_exists(
    -        &self,
    -        captcha_id: &str,
    -    ) -> DBResult<()> {
    -        let id = Uuid::new_v4();
    -        sqlx::query!(
    -            "
    -            INSERT INTO
    -                mcaptcha_psuedo_campaign_id (config_id, psuedo_id)
    -            VALUES (
    -                (SELECT config_id FROM mcaptcha_config WHERE key = ($1)),
    -                $2
    -            );",
    -            captcha_id,
    -            &id.to_string(),
    -        )
    -        .execute(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get psuedo ID from campaign ID
    -    async fn analytics_get_psuedo_id_from_capmaign_id(
    -        &self,
    -        captcha_id: &str,
    -    ) -> DBResult<String> {
    -        let res = sqlx::query_as!(
    -            PsuedoID,
    -            "SELECT psuedo_id FROM
    -                mcaptcha_psuedo_campaign_id
    -            WHERE
    -                 config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1));
    -            ",
    -            captcha_id
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(res.psuedo_id)
    -    }
    -
    -    /// Get campaign ID from psuedo ID
    -    async fn analytics_get_capmaign_id_from_psuedo_id(
    -        &self,
    -        psuedo_id: &str,
    -    ) -> DBResult<String> {
    -        struct ID {
    -            key: String,
    -        }
    -
    -        let res = sqlx::query_as!(
    -            ID,
    -            "SELECT
    -                key
    -            FROM
    -                mcaptcha_config
    -            WHERE
    -                 config_id = (
    -                     SELECT
    -                         config_id
    -                     FROM
    -                         mcaptcha_psuedo_campaign_id
    -                     WHERE
    -                         psuedo_id = $1
    -                 );",
    -            psuedo_id
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -        Ok(res.key)
    -    }
    -
    -    async fn analytics_delete_all_records_for_campaign(
    -        &self,
    -        campaign_id: &str,
    -    ) -> DBResult<()> {
    -        let _ = sqlx::query!(
    -            "
    -        DELETE FROM
    -            mcaptcha_psuedo_campaign_id
    -        WHERE config_id = (
    -            SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    -        );",
    -            campaign_id
    -        )
    -        .execute(&self.pool)
    -        .await;
    -
    -        let _ = sqlx::query!(
    -            "
    -            DELETE FROM
    -                mcaptcha_pow_analytics
    -            WHERE
    -                config_id = (
    -                    SELECT config_id FROM mcaptcha_config WHERE key = $1
    -                    )
    -             ",
    -            campaign_id
    -        )
    -        .execute(&self.pool)
    -        .await;
    -
    -        Ok(())
    -    }
    -
    -    /// Get all psuedo IDs
    -    async fn analytics_get_all_psuedo_ids(&self, page: usize) -> DBResult<Vec<String>> {
    -        const LIMIT: usize = 50;
    -        let offset = LIMIT * page;
    -
    -        let mut res = sqlx::query_as!(
    -            PsuedoID,
    -            "
    -                SELECT
    -                    psuedo_id
    -                FROM
    -                    mcaptcha_psuedo_campaign_id
    -                    ORDER BY ID ASC LIMIT $1 OFFSET $2;",
    -            LIMIT as i64,
    -            offset as i64
    -        )
    -        .fetch_all(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(res.drain(0..).map(|r| r.psuedo_id).collect())
    -    }
    -
    -    /// Track maximum nonce received against captcha levels
    -    async fn update_max_nonce_for_level(
    -        &self,
    -        captcha_key: &str,
    -        difficulty_factor: u32,
    -        latest_nonce: u32,
    -    ) -> DBResult<()> {
    -        sqlx::query!(
    -                "UPDATE mcaptcha_track_nonce SET nonce = $3
    -                WHERE level_id =  (
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    -                    AND
    -                        difficulty_factor = $2
    -                    )
    -                AND nonce <= $3;",
    -                &captcha_key,
    -                difficulty_factor as i32,
    -                latest_nonce as i32,
    -            )
    -            .execute(&self.pool).await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(())
    -    }
    -
    -    /// Get maximum nonce tracked so far for captcha levels
    -    async fn get_max_nonce_for_level(
    -        &self,
    -        captcha_key: &str,
    -        difficulty_factor: u32,
    -    ) -> DBResult<u32> {
    -        struct X {
    -            nonce: i32,
    -        }
    -
    -        async fn inner_get_max_nonce(
    -            pool: &PgPool,
    -            captcha_key: &str,
    -            difficulty_factor: u32,
    -        ) -> DBResult<X> {
    -            sqlx::query_as!(
    -                X,
    -                "SELECT nonce FROM mcaptcha_track_nonce
    -                WHERE level_id =  (
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    -                    AND
    -                        difficulty_factor = $2
    -                    );",
    -                &captcha_key,
    -                difficulty_factor as i32,
    -            )
    -        .fetch_one(pool)
    -                .await
    -                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))
    -        }
    -
    -        let res = inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await;
    -        if let Err(DBError::CaptchaNotFound) = res {
    -            sqlx::query!(
    -                "INSERT INTO
    -                    mcaptcha_track_nonce (level_id, nonce)
    -                VALUES  ((
    -                    SELECT
    -                        level_id
    -                    FROM
    -                        mcaptcha_levels
    -                    WHERE
    -                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    -                    AND
    -                        difficulty_factor = $2
    -                    ), $3);",
    -                &captcha_key,
    -                difficulty_factor as i32,
    -                0,
    -            )
    -            .execute(&self.pool)
    -            .await
    -                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -            let res =
    -                inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await?;
    -            Ok(res.nonce as u32)
    -        } else {
    -            let res = res?;
    -            Ok(res.nonce as u32)
    -        }
    -    }
    -
    -    /// Get number of analytics entries that are under a certain duration
    -    async fn stats_get_num_logs_under_time(&self, duration: u32) -> DBResult<usize> {
    -        struct Count {
    -            count: Option<i64>,
    -        }
    -
    -        let count = sqlx::query_as!(
    -        Count,
    -        "SELECT COUNT(difficulty_factor) FROM mcaptcha_pow_analytics WHERE time <= $1;",
    -        duration as i32,
    -    )
    -        .fetch_one(&self.pool)
    -        .await
    -        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    -
    -        Ok(count.count.unwrap_or_else(|| 0) as usize)
    -    }
    -
    -    /// Get the entry at a location in the list of analytics entires under a certain time limit
    -    /// and sorted in ascending order
    -    async fn stats_get_entry_at_location_for_time_limit_asc(
    -        &self,
    -        duration: u32,
    -        location: u32,
    -    ) -> DBResult<Option<usize>> {
    -        struct Difficulty {
    -            difficulty_factor: Option<i32>,
    -        }
    -
    -        match sqlx::query_as!(
    -            Difficulty,
    -            "SELECT
    -            difficulty_factor
    -        FROM
    -            mcaptcha_pow_analytics
    -        WHERE
    -            time <= $1
    -        ORDER BY difficulty_factor ASC LIMIT 1 OFFSET $2;",
    -            duration as i32,
    -            location as i64 - 1,
    -        )
    -        .fetch_one(&self.pool)
    -        .await
    -        {
    -            Ok(res) => Ok(Some(res.difficulty_factor.unwrap() as usize)),
    -            Err(sqlx::Error::RowNotFound) => Ok(None),
    -            Err(e) => Err(map_row_not_found_err(e, DBError::CaptchaNotFound)),
    -        }
    -    }
    -}
    -
    -#[derive(Clone)]
    -struct Date {
    -    time: OffsetDateTime,
    -}
    -
    -impl Date {
    -    fn dates_to_unix(mut d: Vec<Self>) -> Vec<i64> {
    -        let mut dates = Vec::with_capacity(d.len());
    -        d.drain(0..)
    -            .for_each(|x| dates.push(x.time.unix_timestamp()));
    -        dates
    -    }
    -}
    -
    -fn now_unix_time_stamp() -> OffsetDateTime {
    -    OffsetDateTime::now_utc()
    -}
    -
    -#[derive(Debug, Clone, Default, PartialEq)]
    -/// Represents notification
    -pub struct InnerNotification {
    -    /// receiver name  of the notification
    -    pub name: Option<String>,
    -    /// heading of the notification
    -    pub heading: Option<String>,
    -    /// message of the notification
    -    pub message: Option<String>,
    -    /// when notification was received
    -    pub received: Option<OffsetDateTime>,
    -    /// db assigned ID of the notification
    -    pub id: Option<i32>,
    -}
    -
    -impl From<InnerNotification> for Notification {
    -    fn from(n: InnerNotification) -> Self {
    -        Notification {
    -            name: n.name,
    -            heading: n.heading,
    -            message: n.message,
    -            received: n.received.map(|t| t.unix_timestamp()),
    -            id: n.id,
    -        }
    -    }
    -}
    -
    -struct PsuedoID {
    -    psuedo_id: String,
    -}
    -
    -#[derive(Clone)]
    -struct InternaleCaptchaConfig {
    -    config_id: i32,
    -    duration: i32,
    -    name: String,
    -    key: String,
    -}
    -
    -impl From<InternaleCaptchaConfig> for Captcha {
    -    fn from(i: InternaleCaptchaConfig) -> Self {
    -        Self {
    -            config_id: i.config_id,
    -            duration: i.duration,
    -            description: i.name,
    -            key: i.key,
    -        }
    -    }
    -}
    -
    -struct InnerTraffic {
    -    peak_sustainable_traffic: i32,
    -    avg_traffic: i32,
    -    broke_my_site_traffic: Option<i32>,
    -}
    -
    -impl From<InnerTraffic> for TrafficPattern {
    -    fn from(v: InnerTraffic) -> Self {
    -        TrafficPattern {
    -            broke_my_site_traffic: v.broke_my_site_traffic.as_ref().map(|v| *v as u32),
    -            avg_traffic: v.avg_traffic as u32,
    -            peak_sustainable_traffic: v.peak_sustainable_traffic as u32,
    -        }
    -    }
    -}
    -
    \ No newline at end of file +lib.rs - source

    db_sqlx_postgres/
    lib.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::str::FromStr;
    +7
    +8use db_core::dev::*;
    +9
    +10use sqlx::postgres::PgPoolOptions;
    +11use sqlx::types::time::OffsetDateTime;
    +12use sqlx::ConnectOptions;
    +13use sqlx::PgPool;
    +14use uuid::Uuid;
    +15
    +16pub mod errors;
    +17#[cfg(test)]
    +18pub mod tests;
    +19
    +20#[derive(Clone)]
    +21pub struct Database {
    +22    pub pool: PgPool,
    +23}
    +24
    +25/// Use an existing database pool
    +26pub struct Conn(pub PgPool);
    +27
    +28/// Connect to database
    +29pub enum ConnectionOptions {
    +30    /// fresh connection
    +31    Fresh(Fresh),
    +32    /// existing connection
    +33    Existing(Conn),
    +34}
    +35
    +36pub struct Fresh {
    +37    pub pool_options: PgPoolOptions,
    +38    pub disable_logging: bool,
    +39    pub url: String,
    +40}
    +41
    +42pub mod dev {
    +43    pub use super::errors::*;
    +44    pub use super::Database;
    +45    pub use db_core::dev::*;
    +46    pub use sqlx::Error;
    +47}
    +48
    +49pub mod prelude {
    +50    pub use super::*;
    +51}
    +52
    +53#[async_trait]
    +54impl Connect for ConnectionOptions {
    +55    type Pool = Database;
    +56    async fn connect(self) -> DBResult<Self::Pool> {
    +57        let pool = match self {
    +58            Self::Fresh(fresh) => {
    +59                let mut connect_options =
    +60                    sqlx::postgres::PgConnectOptions::from_str(&fresh.url).unwrap();
    +61                if fresh.disable_logging {
    +62                    connect_options = connect_options.disable_statement_logging();
    +63                }
    +64                fresh
    +65                    .pool_options
    +66                    .connect_with(connect_options)
    +67                    .await
    +68                    .map_err(|e| DBError::DBError(Box::new(e)))?
    +69            }
    +70
    +71            Self::Existing(conn) => conn.0,
    +72        };
    +73        Ok(Database { pool })
    +74    }
    +75}
    +76
    +77use dev::*;
    +78
    +79#[async_trait]
    +80impl Migrate for Database {
    +81    async fn migrate(&self) -> DBResult<()> {
    +82        sqlx::migrate!("./migrations/")
    +83            .run(&self.pool)
    +84            .await
    +85            .map_err(|e| DBError::DBError(Box::new(e)))?;
    +86        Ok(())
    +87    }
    +88}
    +89
    +90#[async_trait]
    +91impl MCDatabase for Database {
    +92    /// ping DB
    +93    async fn ping(&self) -> bool {
    +94        use sqlx::Connection;
    +95
    +96        if let Ok(mut con) = self.pool.acquire().await {
    +97            con.ping().await.is_ok()
    +98        } else {
    +99            false
    +100        }
    +101    }
    +102
    +103    /// register a new user
    +104    async fn register(&self, p: &Register) -> DBResult<()> {
    +105        let res = if let Some(email) = &p.email {
    +106            sqlx::query!(
    +107                "insert into mcaptcha_users 
    +108        (name , password, email, secret) values ($1, $2, $3, $4)",
    +109                &p.username,
    +110                &p.hash,
    +111                &email,
    +112                &p.secret,
    +113            )
    +114            .execute(&self.pool)
    +115            .await
    +116        } else {
    +117            sqlx::query!(
    +118                "INSERT INTO mcaptcha_users 
    +119        (name , password,  secret) VALUES ($1, $2, $3)",
    +120                &p.username,
    +121                &p.hash,
    +122                &p.secret,
    +123            )
    +124            .execute(&self.pool)
    +125            .await
    +126        };
    +127        res.map_err(map_register_err)?;
    +128        Ok(())
    +129    }
    +130
    +131    /// delete a user
    +132    async fn delete_user(&self, username: &str) -> DBResult<()> {
    +133        sqlx::query!("DELETE FROM mcaptcha_users WHERE name = ($1)", username)
    +134            .execute(&self.pool)
    +135            .await
    +136            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +137        Ok(())
    +138    }
    +139
    +140    /// check if username exists
    +141    async fn username_exists(&self, username: &str) -> DBResult<bool> {
    +142        let res = sqlx::query!(
    +143            "SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE name = $1)",
    +144            username,
    +145        )
    +146        .fetch_one(&self.pool)
    +147        .await
    +148        .map_err(map_register_err)?;
    +149
    +150        let mut resp = false;
    +151        if let Some(x) = res.exists {
    +152            resp = x;
    +153        }
    +154
    +155        Ok(resp)
    +156    }
    +157
    +158    /// get user email
    +159    async fn get_email(&self, username: &str) -> DBResult<Option<String>> {
    +160        struct Email {
    +161            email: Option<String>,
    +162        }
    +163
    +164        let res = sqlx::query_as!(
    +165            Email,
    +166            "SELECT email FROM mcaptcha_users WHERE name = $1",
    +167            username
    +168        )
    +169        .fetch_one(&self.pool)
    +170        .await
    +171        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +172        Ok(res.email)
    +173    }
    +174
    +175    /// check if email exists
    +176    async fn email_exists(&self, email: &str) -> DBResult<bool> {
    +177        let res = sqlx::query!(
    +178            "SELECT EXISTS (SELECT 1 from mcaptcha_users WHERE email = $1)",
    +179            email
    +180        )
    +181        .fetch_one(&self.pool)
    +182        .await
    +183        .map_err(map_register_err)?;
    +184
    +185        let mut resp = false;
    +186        if let Some(x) = res.exists {
    +187            resp = x;
    +188        }
    +189
    +190        Ok(resp)
    +191    }
    +192
    +193    /// update a user's email
    +194    async fn update_email(&self, p: &UpdateEmail) -> DBResult<()> {
    +195        sqlx::query!(
    +196            "UPDATE mcaptcha_users set email = $1
    +197            WHERE name = $2",
    +198            &p.new_email,
    +199            &p.username,
    +200        )
    +201        .execute(&self.pool)
    +202        .await
    +203        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +204
    +205        Ok(())
    +206    }
    +207
    +208    /// get a user's password
    +209    async fn get_password(&self, l: &Login) -> DBResult<NameHash> {
    +210        struct Password {
    +211            name: String,
    +212            password: String,
    +213        }
    +214
    +215        let rec = match l {
    +216            Login::Username(u) => sqlx::query_as!(
    +217                Password,
    +218                r#"SELECT name, password  FROM mcaptcha_users WHERE name = ($1)"#,
    +219                u,
    +220            )
    +221            .fetch_one(&self.pool)
    +222            .await
    +223            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    +224
    +225            Login::Email(e) => sqlx::query_as!(
    +226                Password,
    +227                r#"SELECT name, password  FROM mcaptcha_users WHERE email = ($1)"#,
    +228                e,
    +229            )
    +230            .fetch_one(&self.pool)
    +231            .await
    +232            .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?,
    +233        };
    +234
    +235        let res = NameHash {
    +236            hash: rec.password,
    +237            username: rec.name,
    +238        };
    +239
    +240        Ok(res)
    +241    }
    +242
    +243    /// update user's password
    +244    async fn update_password(&self, p: &NameHash) -> DBResult<()> {
    +245        sqlx::query!(
    +246            "UPDATE mcaptcha_users set password = $1
    +247            WHERE name = $2",
    +248            &p.hash,
    +249            &p.username,
    +250        )
    +251        .execute(&self.pool)
    +252        .await
    +253        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +254
    +255        Ok(())
    +256    }
    +257
    +258    /// update username
    +259    async fn update_username(&self, current: &str, new: &str) -> DBResult<()> {
    +260        sqlx::query!(
    +261            "UPDATE mcaptcha_users set name = $1
    +262            WHERE name = $2",
    +263            new,
    +264            current,
    +265        )
    +266        .execute(&self.pool)
    +267        .await
    +268        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +269
    +270        Ok(())
    +271    }
    +272
    +273    /// get a user's secret
    +274    async fn get_secret(&self, username: &str) -> DBResult<Secret> {
    +275        let secret = sqlx::query_as!(
    +276            Secret,
    +277            r#"SELECT secret  FROM mcaptcha_users WHERE name = ($1)"#,
    +278            username,
    +279        )
    +280        .fetch_one(&self.pool)
    +281        .await
    +282        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +283
    +284        Ok(secret)
    +285    }
    +286
    +287    /// get a user's secret from a captcha key
    +288    async fn get_secret_from_captcha(&self, key: &str) -> DBResult<Secret> {
    +289        let secret = sqlx::query_as!(
    +290            Secret,
    +291            r#"SELECT secret  FROM mcaptcha_users WHERE ID = (
    +292                    SELECT user_id FROM mcaptcha_config WHERE key = $1
    +293                    )"#,
    +294            key,
    +295        )
    +296        .fetch_one(&self.pool)
    +297        .await
    +298        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +299
    +300        Ok(secret)
    +301    }
    +302
    +303    /// update a user's secret
    +304    async fn update_secret(&self, username: &str, secret: &str) -> DBResult<()> {
    +305        sqlx::query!(
    +306            "UPDATE mcaptcha_users set secret = $1
    +307        WHERE name = $2",
    +308            &secret,
    +309            &username,
    +310        )
    +311        .execute(&self.pool)
    +312        .await
    +313        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +314
    +315        Ok(())
    +316    }
    +317
    +318    /// create new captcha
    +319    async fn create_captcha(&self, username: &str, p: &CreateCaptcha) -> DBResult<()> {
    +320        sqlx::query!(
    +321            "INSERT INTO mcaptcha_config
    +322        (key, user_id, duration, name)
    +323        VALUES ($1, (SELECT ID FROM mcaptcha_users WHERE name = $2), $3, $4)",
    +324            p.key,
    +325            username,
    +326            p.duration as i32,
    +327            p.description,
    +328        )
    +329        .execute(&self.pool)
    +330        .await
    +331        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +332
    +333        Ok(())
    +334    }
    +335
    +336    /// Get captcha config
    +337    async fn get_captcha_config(&self, username: &str, key: &str) -> DBResult<Captcha> {
    +338        let captcha = sqlx::query_as!(
    +339            InternaleCaptchaConfig,
    +340            "SELECT config_id, duration, name, key from mcaptcha_config WHERE
    +341                        key = $1 AND
    +342                        user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2) ",
    +343            &key,
    +344            &username,
    +345        )
    +346        .fetch_one(&self.pool)
    +347        .await
    +348        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +349
    +350        Ok(captcha.into())
    +351    }
    +352
    +353    /// Get all captchas belonging to user
    +354    async fn get_all_user_captchas(&self, username: &str) -> DBResult<Vec<Captcha>> {
    +355        let mut res = sqlx::query_as!(
    +356            InternaleCaptchaConfig,
    +357            "SELECT key, name, config_id, duration FROM mcaptcha_config WHERE
    +358            user_id = (SELECT ID FROM mcaptcha_users WHERE name = $1) ",
    +359            &username,
    +360        )
    +361        .fetch_all(&self.pool)
    +362        .await
    +363        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +364
    +365        let mut captchas = Vec::with_capacity(res.len());
    +366
    +367        res.drain(0..).for_each(|r| captchas.push(r.into()));
    +368
    +369        Ok(captchas)
    +370    }
    +371
    +372    /// update captcha metadata; doesn't change captcha key
    +373    async fn update_captcha_metadata(
    +374        &self,
    +375        username: &str,
    +376        p: &CreateCaptcha,
    +377    ) -> DBResult<()> {
    +378        sqlx::query!(
    +379            "UPDATE mcaptcha_config SET name = $1, duration = $2
    +380            WHERE user_id = (SELECT ID FROM mcaptcha_users WHERE name = $3)
    +381            AND key = $4",
    +382            p.description,
    +383            p.duration,
    +384            username,
    +385            p.key,
    +386        )
    +387        .execute(&self.pool)
    +388        .await
    +389        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +390
    +391        Ok(())
    +392    }
    +393
    +394    /// update captcha key; doesn't change metadata
    +395    async fn update_captcha_key(
    +396        &self,
    +397        username: &str,
    +398        old_key: &str,
    +399        new_key: &str,
    +400    ) -> DBResult<()> {
    +401        sqlx::query!(
    +402            "UPDATE mcaptcha_config SET key = $1 
    +403        WHERE key = $2 AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = $3)",
    +404            new_key,
    +405            old_key,
    +406            username,
    +407        )
    +408        .execute(&self.pool)
    +409        .await
    +410        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +411
    +412        Ok(())
    +413    }
    +414
    +415    /// Add levels to captcha
    +416    async fn add_captcha_levels(
    +417        &self,
    +418        username: &str,
    +419        captcha_key: &str,
    +420        levels: &[Level],
    +421    ) -> DBResult<()> {
    +422        use futures::future::try_join_all;
    +423        let mut futs = Vec::with_capacity(levels.len());
    +424
    +425        for level in levels.iter() {
    +426            let difficulty_factor = level.difficulty_factor as i32;
    +427            let visitor_threshold = level.visitor_threshold as i32;
    +428            let fut = sqlx::query!(
    +429                "INSERT INTO mcaptcha_levels (
    +430            difficulty_factor, 
    +431            visitor_threshold,
    +432            config_id) VALUES  (
    +433            $1, $2, (
    +434                SELECT config_id FROM mcaptcha_config WHERE
    +435                key = ($3) AND user_id = (
    +436                SELECT ID FROM mcaptcha_users WHERE name = $4
    +437                    )));",
    +438                difficulty_factor,
    +439                visitor_threshold,
    +440                &captcha_key,
    +441                username,
    +442            )
    +443            .execute(&self.pool);
    +444            futs.push(fut);
    +445        }
    +446
    +447        try_join_all(futs)
    +448            .await
    +449            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +450
    +451        let mut futs = Vec::with_capacity(levels.len());
    +452        for level in levels.iter() {
    +453            let difficulty_factor = level.difficulty_factor as i32;
    +454            let visitor_threshold = level.visitor_threshold as i32;
    +455            let fut = sqlx::query!(
    +456                "INSERT INTO
    +457                    mcaptcha_track_nonce (level_id, nonce)
    +458                VALUES  ((
    +459                    SELECT
    +460                        level_id
    +461                    FROM
    +462                        mcaptcha_levels
    +463                    WHERE
    +464                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    +465                    AND
    +466                        difficulty_factor = $2
    +467                    AND
    +468                        visitor_threshold = $3
    +469                    ), $4);",
    +470                &captcha_key,
    +471                difficulty_factor,
    +472                visitor_threshold,
    +473                0,
    +474            )
    +475            .execute(&self.pool);
    +476            futs.push(fut);
    +477        }
    +478
    +479        try_join_all(futs)
    +480            .await
    +481            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +482
    +483        Ok(())
    +484    }
    +485
    +486    /// check if captcha exists
    +487    async fn captcha_exists(
    +488        &self,
    +489        username: Option<&str>,
    +490        captcha_key: &str,
    +491    ) -> DBResult<bool> {
    +492        let mut exists = false;
    +493
    +494        match username {
    +495            Some(username) => {
    +496                let x = sqlx::query!(
    +497                    "SELECT EXISTS (
    +498            SELECT 1 from mcaptcha_config WHERE key = $1 
    +499            AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)
    +500            )",
    +501                    captcha_key,
    +502                    username
    +503                )
    +504                .fetch_one(&self.pool)
    +505                .await
    +506                .map_err(map_register_err)?;
    +507                if let Some(x) = x.exists {
    +508                    exists = x;
    +509                };
    +510            }
    +511
    +512            None => {
    +513                let x = sqlx::query!(
    +514                    "SELECT EXISTS (SELECT 1 from mcaptcha_config WHERE key = $1)",
    +515                    &captcha_key,
    +516                )
    +517                .fetch_one(&self.pool)
    +518                .await
    +519                .map_err(map_register_err)?;
    +520                if let Some(x) = x.exists {
    +521                    exists = x;
    +522                };
    +523            }
    +524        };
    +525
    +526        Ok(exists)
    +527    }
    +528
    +529    /// Delete all levels of a captcha
    +530    async fn delete_captcha_levels(
    +531        &self,
    +532        username: &str,
    +533        captcha_key: &str,
    +534    ) -> DBResult<()> {
    +535        sqlx::query!(
    +536            "DELETE FROM mcaptcha_levels 
    +537        WHERE config_id = (
    +538            SELECT config_id FROM mcaptcha_config where key = ($1) 
    +539            AND user_id = (
    +540            SELECT ID from mcaptcha_users WHERE name = $2
    +541            )
    +542            )",
    +543            captcha_key,
    +544            username
    +545        )
    +546        .execute(&self.pool)
    +547        .await
    +548        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +549
    +550        Ok(())
    +551    }
    +552
    +553    /// Delete captcha
    +554    async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()> {
    +555        sqlx::query!(
    +556            "DELETE FROM mcaptcha_config WHERE key = ($1)
    +557                AND
    +558            user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)",
    +559            captcha_key,
    +560            username,
    +561        )
    +562        .execute(&self.pool)
    +563        .await
    +564        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +565
    +566        Ok(())
    +567    }
    +568
    +569    /// Get captcha levels
    +570    async fn get_captcha_levels(
    +571        &self,
    +572        username: Option<&str>,
    +573        captcha_key: &str,
    +574    ) -> DBResult<Vec<Level>> {
    +575        struct I32Levels {
    +576            difficulty_factor: i32,
    +577            visitor_threshold: i32,
    +578        }
    +579        let levels = match username {
    +580            None => sqlx::query_as!(
    +581                I32Levels,
    +582                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    +583            config_id = (
    +584                SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    +585                ) ORDER BY difficulty_factor ASC;",
    +586                captcha_key,
    +587            )
    +588            .fetch_all(&self.pool)
    +589            .await
    +590            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    +591
    +592            Some(username) => sqlx::query_as!(
    +593                I32Levels,
    +594                "SELECT difficulty_factor, visitor_threshold FROM mcaptcha_levels  WHERE
    +595            config_id = (
    +596                SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    +597                AND user_id = (SELECT ID from mcaptcha_users WHERE name = $2)
    +598                )
    +599            ORDER BY difficulty_factor ASC;",
    +600                captcha_key,
    +601                username
    +602            )
    +603            .fetch_all(&self.pool)
    +604            .await
    +605            .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?,
    +606        };
    +607
    +608        let mut new_levels = Vec::with_capacity(levels.len());
    +609        for l in levels.iter() {
    +610            new_levels.push(Level {
    +611                difficulty_factor: l.difficulty_factor as u32,
    +612                visitor_threshold: l.visitor_threshold as u32,
    +613            });
    +614        }
    +615        Ok(new_levels)
    +616    }
    +617
    +618    /// Get captcha's cooldown period
    +619    async fn get_captcha_cooldown(&self, captcha_key: &str) -> DBResult<i32> {
    +620        struct DurationResp {
    +621            duration: i32,
    +622        }
    +623
    +624        let resp = sqlx::query_as!(
    +625            DurationResp,
    +626            "SELECT duration FROM mcaptcha_config  
    +627            WHERE key = $1",
    +628            captcha_key,
    +629        )
    +630        .fetch_one(&self.pool)
    +631        .await
    +632        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +633
    +634        Ok(resp.duration)
    +635    }
    +636    /// Add traffic configuration
    +637    async fn add_traffic_pattern(
    +638        &self,
    +639        username: &str,
    +640        captcha_key: &str,
    +641        pattern: &TrafficPattern,
    +642    ) -> DBResult<()> {
    +643        sqlx::query!(
    +644            "INSERT INTO mcaptcha_sitekey_user_provided_avg_traffic (
    +645            config_id,
    +646            avg_traffic,
    +647            peak_sustainable_traffic,
    +648            broke_my_site_traffic
    +649            ) VALUES ( 
    +650             (SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    +651             AND user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)
    +652            ), $3, $4, $5)",
    +653            //payload.avg_traffic,
    +654            captcha_key,
    +655            username,
    +656            pattern.avg_traffic as i32,
    +657            pattern.peak_sustainable_traffic as i32,
    +658            pattern.broke_my_site_traffic.as_ref().map(|v| *v as i32),
    +659        )
    +660        .execute(&self.pool)
    +661        .await
    +662        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +663        Ok(())
    +664    }
    +665
    +666    /// Get traffic configuration
    +667    async fn get_traffic_pattern(
    +668        &self,
    +669        username: &str,
    +670        captcha_key: &str,
    +671    ) -> DBResult<TrafficPattern> {
    +672        let res = sqlx::query_as!(
    +673            InnerTraffic,
    +674            "SELECT 
    +675          avg_traffic, 
    +676          peak_sustainable_traffic, 
    +677          broke_my_site_traffic 
    +678        FROM 
    +679          mcaptcha_sitekey_user_provided_avg_traffic 
    +680        WHERE 
    +681          config_id = (
    +682            SELECT 
    +683              config_id 
    +684            FROM 
    +685              mcaptcha_config 
    +686            WHERE 
    +687              KEY = $1 
    +688              AND user_id = (
    +689                SELECT 
    +690                  id 
    +691                FROM 
    +692                  mcaptcha_users 
    +693                WHERE 
    +694                  NAME = $2
    +695              )
    +696          )
    +697        ",
    +698            captcha_key,
    +699            username
    +700        )
    +701        .fetch_one(&self.pool)
    +702        .await
    +703        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    +704        Ok(res.into())
    +705    }
    +706
    +707    /// Get all easy captcha configurations on instance
    +708    async fn get_all_easy_captchas(
    +709        &self,
    +710        limit: usize,
    +711        offset: usize,
    +712    ) -> DBResult<Vec<EasyCaptcha>> {
    +713        struct InnerEasyCaptcha {
    +714            key: String,
    +715            peak_sustainable_traffic: i32,
    +716            avg_traffic: i32,
    +717            broke_my_site_traffic: Option<i32>,
    +718            name: String,
    +719            username: String,
    +720        }
    +721        let mut inner_res = sqlx::query_as!(
    +722            InnerEasyCaptcha,
    +723            "SELECT 
    +724                  mcaptcha_sitekey_user_provided_avg_traffic.avg_traffic, 
    +725                  mcaptcha_sitekey_user_provided_avg_traffic.peak_sustainable_traffic, 
    +726                  mcaptcha_sitekey_user_provided_avg_traffic.broke_my_site_traffic,
    +727                  mcaptcha_config.name,
    +728                  mcaptcha_users.name as username,
    +729                  mcaptcha_config.key
    +730            FROM 
    +731              mcaptcha_sitekey_user_provided_avg_traffic 
    +732            INNER JOIN
    +733                mcaptcha_config
    +734            ON
    +735                mcaptcha_config.config_id = mcaptcha_sitekey_user_provided_avg_traffic.config_id
    +736            INNER JOIN
    +737                mcaptcha_users
    +738            ON
    +739                mcaptcha_config.user_id = mcaptcha_users.ID
    +740            ORDER BY mcaptcha_config.config_id
    +741            OFFSET $1 LIMIT $2; ",
    +742            offset as i32,
    +743            limit as i32
    +744        )
    +745        .fetch_all(&self.pool)
    +746        .await
    +747        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    +748        let mut res = Vec::with_capacity(inner_res.len());
    +749        inner_res.drain(0..).for_each(|v| {
    +750            res.push(EasyCaptcha {
    +751                key: v.key,
    +752                description: v.name,
    +753                username: v.username,
    +754                traffic_pattern: TrafficPattern {
    +755                    broke_my_site_traffic: v
    +756                        .broke_my_site_traffic
    +757                        .as_ref()
    +758                        .map(|v| *v as u32),
    +759                    avg_traffic: v.avg_traffic as u32,
    +760                    peak_sustainable_traffic: v.peak_sustainable_traffic as u32,
    +761                },
    +762            })
    +763        });
    +764        Ok(res)
    +765    }
    +766
    +767    /// Delete traffic configuration
    +768    async fn delete_traffic_pattern(
    +769        &self,
    +770        username: &str,
    +771        captcha_key: &str,
    +772    ) -> DBResult<()> {
    +773        sqlx::query!(
    +774            "DELETE FROM mcaptcha_sitekey_user_provided_avg_traffic
    +775        WHERE config_id = (
    +776            SELECT config_id 
    +777            FROM 
    +778                mcaptcha_config 
    +779            WHERE
    +780                key = ($1) 
    +781            AND 
    +782                user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)
    +783            );",
    +784            captcha_key,
    +785            username,
    +786        )
    +787        .execute(&self.pool)
    +788        .await
    +789        .map_err(|e| map_row_not_found_err(e, DBError::TrafficPatternNotFound))?;
    +790        Ok(())
    +791    }
    +792
    +793    /// create new notification
    +794    async fn create_notification(&self, p: &AddNotification) -> DBResult<()> {
    +795        let now = now_unix_time_stamp();
    +796        sqlx::query!(
    +797            "INSERT INTO mcaptcha_notifications (
    +798              heading, message, tx, rx, received)
    +799              VALUES  (
    +800              $1, $2,
    +801                  (SELECT ID FROM mcaptcha_users WHERE name = $3),
    +802                  (SELECT ID FROM mcaptcha_users WHERE name = $4),
    +803                  $5
    +804                      );",
    +805            p.heading,
    +806            p.message,
    +807            p.from,
    +808            p.to,
    +809            now
    +810        )
    +811        .execute(&self.pool)
    +812        .await
    +813        .map_err(map_register_err)?;
    +814
    +815        Ok(())
    +816    }
    +817
    +818    /// get all unread notifications
    +819    async fn get_all_unread_notifications(
    +820        &self,
    +821        username: &str,
    +822    ) -> DBResult<Vec<Notification>> {
    +823        let mut inner_notifications = sqlx::query_file_as!(
    +824            InnerNotification,
    +825            "./src/get_all_unread_notifications.sql",
    +826            &username
    +827        )
    +828        .fetch_all(&self.pool)
    +829        .await
    +830        .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?;
    +831
    +832        let mut notifications = Vec::with_capacity(inner_notifications.len());
    +833
    +834        inner_notifications
    +835            .drain(0..)
    +836            .for_each(|n| notifications.push(n.into()));
    +837
    +838        Ok(notifications)
    +839    }
    +840
    +841    /// mark a notification read
    +842    async fn mark_notification_read(&self, username: &str, id: i32) -> DBResult<()> {
    +843        sqlx::query_file_as!(
    +844            Notification,
    +845            "./src/mark_notification_read.sql",
    +846            id,
    +847            &username
    +848        )
    +849        .execute(&self.pool)
    +850        .await
    +851        .map_err(|e| map_row_not_found_err(e, DBError::NotificationNotFound))?;
    +852
    +853        Ok(())
    +854    }
    +855
    +856    /// record PoWConfig fetches
    +857    async fn record_fetch(&self, key: &str) -> DBResult<()> {
    +858        let now = now_unix_time_stamp();
    +859        let _ = sqlx::query!(
    +860        "INSERT INTO mcaptcha_pow_fetched_stats 
    +861        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2)",
    +862        key,
    +863        &now,
    +864    )
    +865    .execute(&self.pool)
    +866    .await
    +867        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +868        Ok(())
    +869    }
    +870
    +871    /// record PoWConfig solves
    +872    async fn record_solve(&self, key: &str) -> DBResult<()> {
    +873        let now = OffsetDateTime::now_utc();
    +874        let _ = sqlx::query!(
    +875        "INSERT INTO mcaptcha_pow_solved_stats 
    +876        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2)",
    +877        key,
    +878        &now,
    +879    )
    +880    .execute(&self.pool)
    +881    .await
    +882    .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +883        Ok(())
    +884    }
    +885
    +886    /// record PoWConfig confirms
    +887    async fn record_confirm(&self, key: &str) -> DBResult<()> {
    +888        let now = now_unix_time_stamp();
    +889        let _ = sqlx::query!(
    +890        "INSERT INTO mcaptcha_pow_confirmed_stats 
    +891        (config_id, time) VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2)",
    +892        key,
    +893        &now
    +894    )
    +895    .execute(&self.pool)
    +896    .await
    +897        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +898        Ok(())
    +899    }
    +900
    +901    /// fetch PoWConfig fetches
    +902    async fn fetch_config_fetched(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    +903        let records = sqlx::query_as!(
    +904            Date,
    +905            "SELECT time FROM mcaptcha_pow_fetched_stats
    +906            WHERE 
    +907                config_id = (
    +908                    SELECT 
    +909                        config_id FROM mcaptcha_config 
    +910                    WHERE 
    +911                        key = $1
    +912                    AND
    +913                        user_id = (
    +914                        SELECT 
    +915                            ID FROM mcaptcha_users WHERE name = $2))
    +916                ORDER BY time DESC",
    +917            &key,
    +918            &user,
    +919        )
    +920        .fetch_all(&self.pool)
    +921        .await
    +922        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +923
    +924        Ok(Date::dates_to_unix(records))
    +925    }
    +926
    +927    /// fetch PoWConfig solves
    +928    async fn fetch_solve(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    +929        let records = sqlx::query_as!(
    +930            Date,
    +931            "SELECT time FROM mcaptcha_pow_solved_stats 
    +932            WHERE config_id = (
    +933                SELECT config_id FROM mcaptcha_config 
    +934                WHERE 
    +935                    key = $1
    +936                AND
    +937                     user_id = (
    +938                        SELECT 
    +939                            ID FROM mcaptcha_users WHERE name = $2)) 
    +940                ORDER BY time DESC",
    +941            &key,
    +942            &user
    +943        )
    +944        .fetch_all(&self.pool)
    +945        .await
    +946        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +947
    +948        Ok(Date::dates_to_unix(records))
    +949    }
    +950
    +951    /// fetch PoWConfig confirms
    +952    async fn fetch_confirm(&self, user: &str, key: &str) -> DBResult<Vec<i64>> {
    +953        let records = sqlx::query_as!(
    +954            Date,
    +955            "SELECT time FROM mcaptcha_pow_confirmed_stats 
    +956            WHERE 
    +957                config_id = (
    +958                    SELECT config_id FROM mcaptcha_config 
    +959                WHERE 
    +960                    key = $1
    +961                AND
    +962                     user_id = (
    +963                        SELECT 
    +964                            ID FROM mcaptcha_users WHERE name = $2))
    +965                ORDER BY time DESC",
    +966            &key,
    +967            &user
    +968        )
    +969        .fetch_all(&self.pool)
    +970        .await
    +971        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +972
    +973        Ok(Date::dates_to_unix(records))
    +974    }
    +975
    +976    /// record PoW timing
    +977    async fn analysis_save(
    +978        &self,
    +979        captcha_id: &str,
    +980        d: &CreatePerformanceAnalytics,
    +981    ) -> DBResult<()> {
    +982        let _ = sqlx::query!(
    +983            "INSERT INTO mcaptcha_pow_analytics 
    +984        (config_id, time, difficulty_factor, worker_type)
    +985        VALUES ((SELECT config_id FROM mcaptcha_config WHERE key = $1), $2, $3, $4)",
    +986            captcha_id,
    +987            d.time as i32,
    +988            d.difficulty_factor as i32,
    +989            &d.worker_type,
    +990        )
    +991        .execute(&self.pool)
    +992        .await
    +993        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +994        Ok(())
    +995    }
    +996
    +997    /// fetch PoW analytics
    +998    async fn analytics_fetch(
    +999        &self,
    +1000        captcha_id: &str,
    +1001        limit: usize,
    +1002        offset: usize,
    +1003    ) -> DBResult<Vec<PerformanceAnalytics>> {
    +1004        struct P {
    +1005            id: i32,
    +1006            time: i32,
    +1007            difficulty_factor: i32,
    +1008            worker_type: String,
    +1009        }
    +1010
    +1011        impl From<P> for PerformanceAnalytics {
    +1012            fn from(v: P) -> Self {
    +1013                Self {
    +1014                    time: v.time as u32,
    +1015                    difficulty_factor: v.difficulty_factor as u32,
    +1016                    worker_type: v.worker_type,
    +1017                    id: v.id as usize,
    +1018                }
    +1019            }
    +1020        }
    +1021
    +1022        let mut c = sqlx::query_as!(
    +1023            P,
    +1024            "SELECT id, time, difficulty_factor, worker_type FROM mcaptcha_pow_analytics
    +1025            WHERE 
    +1026                config_id = (
    +1027                    SELECT 
    +1028                        config_id FROM mcaptcha_config 
    +1029                    WHERE 
    +1030                        key = $1
    +1031                        )
    +1032                ORDER BY ID
    +1033                OFFSET $2 LIMIT $3
    +1034                ",
    +1035            &captcha_id,
    +1036            offset as i32,
    +1037            limit as i32
    +1038        )
    +1039        .fetch_all(&self.pool)
    +1040        .await
    +1041        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1042        let mut res = Vec::with_capacity(c.len());
    +1043        for i in c.drain(0..) {
    +1044            res.push(i.into())
    +1045        }
    +1046
    +1047        Ok(res)
    +1048    }
    +1049
    +1050    /// Create psuedo ID against campaign ID to publish analytics
    +1051    async fn analytics_create_psuedo_id_if_not_exists(
    +1052        &self,
    +1053        captcha_id: &str,
    +1054    ) -> DBResult<()> {
    +1055        let id = Uuid::new_v4();
    +1056        sqlx::query!(
    +1057            "
    +1058            INSERT INTO
    +1059                mcaptcha_psuedo_campaign_id (config_id, psuedo_id)
    +1060            VALUES (
    +1061                (SELECT config_id FROM mcaptcha_config WHERE key = ($1)),
    +1062                $2
    +1063            );",
    +1064            captcha_id,
    +1065            &id.to_string(),
    +1066        )
    +1067        .execute(&self.pool)
    +1068        .await
    +1069        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1070
    +1071        Ok(())
    +1072    }
    +1073
    +1074    /// Get psuedo ID from campaign ID
    +1075    async fn analytics_get_psuedo_id_from_capmaign_id(
    +1076        &self,
    +1077        captcha_id: &str,
    +1078    ) -> DBResult<String> {
    +1079        let res = sqlx::query_as!(
    +1080            PsuedoID,
    +1081            "SELECT psuedo_id FROM
    +1082                mcaptcha_psuedo_campaign_id
    +1083            WHERE
    +1084                 config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1));
    +1085            ",
    +1086            captcha_id
    +1087        )
    +1088        .fetch_one(&self.pool)
    +1089        .await
    +1090        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1091
    +1092        Ok(res.psuedo_id)
    +1093    }
    +1094
    +1095    /// Get campaign ID from psuedo ID
    +1096    async fn analytics_get_capmaign_id_from_psuedo_id(
    +1097        &self,
    +1098        psuedo_id: &str,
    +1099    ) -> DBResult<String> {
    +1100        struct ID {
    +1101            key: String,
    +1102        }
    +1103
    +1104        let res = sqlx::query_as!(
    +1105            ID,
    +1106            "SELECT
    +1107                key
    +1108            FROM
    +1109                mcaptcha_config
    +1110            WHERE
    +1111                 config_id = (
    +1112                     SELECT
    +1113                         config_id
    +1114                     FROM
    +1115                         mcaptcha_psuedo_campaign_id
    +1116                     WHERE
    +1117                         psuedo_id = $1
    +1118                 );",
    +1119            psuedo_id
    +1120        )
    +1121        .fetch_one(&self.pool)
    +1122        .await
    +1123        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1124        Ok(res.key)
    +1125    }
    +1126
    +1127    async fn analytics_delete_all_records_for_campaign(
    +1128        &self,
    +1129        campaign_id: &str,
    +1130    ) -> DBResult<()> {
    +1131        let _ = sqlx::query!(
    +1132            "
    +1133        DELETE FROM
    +1134            mcaptcha_psuedo_campaign_id
    +1135        WHERE config_id = (
    +1136            SELECT config_id FROM mcaptcha_config WHERE key = ($1)
    +1137        );",
    +1138            campaign_id
    +1139        )
    +1140        .execute(&self.pool)
    +1141        .await;
    +1142
    +1143        let _ = sqlx::query!(
    +1144            "
    +1145            DELETE FROM
    +1146                mcaptcha_pow_analytics
    +1147            WHERE
    +1148                config_id = (
    +1149                    SELECT config_id FROM mcaptcha_config WHERE key = $1
    +1150                    )
    +1151             ",
    +1152            campaign_id
    +1153        )
    +1154        .execute(&self.pool)
    +1155        .await;
    +1156
    +1157        Ok(())
    +1158    }
    +1159
    +1160    /// Get all psuedo IDs
    +1161    async fn analytics_get_all_psuedo_ids(&self, page: usize) -> DBResult<Vec<String>> {
    +1162        const LIMIT: usize = 50;
    +1163        let offset = LIMIT * page;
    +1164
    +1165        let mut res = sqlx::query_as!(
    +1166            PsuedoID,
    +1167            "
    +1168                SELECT
    +1169                    psuedo_id
    +1170                FROM
    +1171                    mcaptcha_psuedo_campaign_id
    +1172                    ORDER BY ID ASC LIMIT $1 OFFSET $2;",
    +1173            LIMIT as i64,
    +1174            offset as i64
    +1175        )
    +1176        .fetch_all(&self.pool)
    +1177        .await
    +1178        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1179
    +1180        Ok(res.drain(0..).map(|r| r.psuedo_id).collect())
    +1181    }
    +1182
    +1183    /// Track maximum nonce received against captcha levels
    +1184    async fn update_max_nonce_for_level(
    +1185        &self,
    +1186        captcha_key: &str,
    +1187        difficulty_factor: u32,
    +1188        latest_nonce: u32,
    +1189    ) -> DBResult<()> {
    +1190        sqlx::query!(
    +1191                "UPDATE mcaptcha_track_nonce SET nonce = $3
    +1192                WHERE level_id =  (
    +1193                    SELECT
    +1194                        level_id
    +1195                    FROM
    +1196                        mcaptcha_levels
    +1197                    WHERE
    +1198                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    +1199                    AND
    +1200                        difficulty_factor = $2
    +1201                    )
    +1202                AND nonce <= $3;",
    +1203                &captcha_key,
    +1204                difficulty_factor as i32,
    +1205                latest_nonce as i32,
    +1206            )
    +1207            .execute(&self.pool).await
    +1208        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1209
    +1210        Ok(())
    +1211    }
    +1212
    +1213    /// Get maximum nonce tracked so far for captcha levels
    +1214    async fn get_max_nonce_for_level(
    +1215        &self,
    +1216        captcha_key: &str,
    +1217        difficulty_factor: u32,
    +1218    ) -> DBResult<u32> {
    +1219        struct X {
    +1220            nonce: i32,
    +1221        }
    +1222
    +1223        async fn inner_get_max_nonce(
    +1224            pool: &PgPool,
    +1225            captcha_key: &str,
    +1226            difficulty_factor: u32,
    +1227        ) -> DBResult<X> {
    +1228            sqlx::query_as!(
    +1229                X,
    +1230                "SELECT nonce FROM mcaptcha_track_nonce
    +1231                WHERE level_id =  (
    +1232                    SELECT
    +1233                        level_id
    +1234                    FROM
    +1235                        mcaptcha_levels
    +1236                    WHERE
    +1237                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    +1238                    AND
    +1239                        difficulty_factor = $2
    +1240                    );",
    +1241                &captcha_key,
    +1242                difficulty_factor as i32,
    +1243            )
    +1244        .fetch_one(pool)
    +1245                .await
    +1246                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))
    +1247        }
    +1248
    +1249        let res = inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await;
    +1250        if let Err(DBError::CaptchaNotFound) = res {
    +1251            sqlx::query!(
    +1252                "INSERT INTO
    +1253                    mcaptcha_track_nonce (level_id, nonce)
    +1254                VALUES  ((
    +1255                    SELECT
    +1256                        level_id
    +1257                    FROM
    +1258                        mcaptcha_levels
    +1259                    WHERE
    +1260                        config_id = (SELECT config_id FROM mcaptcha_config WHERE key = ($1))
    +1261                    AND
    +1262                        difficulty_factor = $2
    +1263                    ), $3);",
    +1264                &captcha_key,
    +1265                difficulty_factor as i32,
    +1266                0,
    +1267            )
    +1268            .execute(&self.pool)
    +1269            .await
    +1270                .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1271
    +1272            let res =
    +1273                inner_get_max_nonce(&self.pool, captcha_key, difficulty_factor).await?;
    +1274            Ok(res.nonce as u32)
    +1275        } else {
    +1276            let res = res?;
    +1277            Ok(res.nonce as u32)
    +1278        }
    +1279    }
    +1280
    +1281    /// Get number of analytics entries that are under a certain duration
    +1282    async fn stats_get_num_logs_under_time(&self, duration: u32) -> DBResult<usize> {
    +1283        struct Count {
    +1284            count: Option<i64>,
    +1285        }
    +1286
    +1287        let count = sqlx::query_as!(
    +1288        Count,
    +1289        "SELECT COUNT(difficulty_factor) FROM mcaptcha_pow_analytics WHERE time <= $1;",
    +1290        duration as i32,
    +1291    )
    +1292        .fetch_one(&self.pool)
    +1293        .await
    +1294        .map_err(|e| map_row_not_found_err(e, DBError::CaptchaNotFound))?;
    +1295
    +1296        Ok(count.count.unwrap_or_else(|| 0) as usize)
    +1297    }
    +1298
    +1299    /// Get the entry at a location in the list of analytics entires under a certain time limit
    +1300    /// and sorted in ascending order
    +1301    async fn stats_get_entry_at_location_for_time_limit_asc(
    +1302        &self,
    +1303        duration: u32,
    +1304        location: u32,
    +1305    ) -> DBResult<Option<usize>> {
    +1306        struct Difficulty {
    +1307            difficulty_factor: Option<i32>,
    +1308        }
    +1309
    +1310        match sqlx::query_as!(
    +1311            Difficulty,
    +1312            "SELECT
    +1313            difficulty_factor
    +1314        FROM
    +1315            mcaptcha_pow_analytics
    +1316        WHERE
    +1317            time <= $1
    +1318        ORDER BY difficulty_factor ASC LIMIT 1 OFFSET $2;",
    +1319            duration as i32,
    +1320            location as i64 - 1,
    +1321        )
    +1322        .fetch_one(&self.pool)
    +1323        .await
    +1324        {
    +1325            Ok(res) => Ok(Some(res.difficulty_factor.unwrap() as usize)),
    +1326            Err(sqlx::Error::RowNotFound) => Ok(None),
    +1327            Err(e) => Err(map_row_not_found_err(e, DBError::CaptchaNotFound)),
    +1328        }
    +1329    }
    +1330}
    +1331
    +1332#[derive(Clone)]
    +1333struct Date {
    +1334    time: OffsetDateTime,
    +1335}
    +1336
    +1337impl Date {
    +1338    fn dates_to_unix(mut d: Vec<Self>) -> Vec<i64> {
    +1339        let mut dates = Vec::with_capacity(d.len());
    +1340        d.drain(0..)
    +1341            .for_each(|x| dates.push(x.time.unix_timestamp()));
    +1342        dates
    +1343    }
    +1344}
    +1345
    +1346fn now_unix_time_stamp() -> OffsetDateTime {
    +1347    OffsetDateTime::now_utc()
    +1348}
    +1349
    +1350#[derive(Debug, Clone, Default, PartialEq)]
    +1351/// Represents notification
    +1352pub struct InnerNotification {
    +1353    /// receiver name  of the notification
    +1354    pub name: Option<String>,
    +1355    /// heading of the notification
    +1356    pub heading: Option<String>,
    +1357    /// message of the notification
    +1358    pub message: Option<String>,
    +1359    /// when notification was received
    +1360    pub received: Option<OffsetDateTime>,
    +1361    /// db assigned ID of the notification
    +1362    pub id: Option<i32>,
    +1363}
    +1364
    +1365impl From<InnerNotification> for Notification {
    +1366    fn from(n: InnerNotification) -> Self {
    +1367        Notification {
    +1368            name: n.name,
    +1369            heading: n.heading,
    +1370            message: n.message,
    +1371            received: n.received.map(|t| t.unix_timestamp()),
    +1372            id: n.id,
    +1373        }
    +1374    }
    +1375}
    +1376
    +1377struct PsuedoID {
    +1378    psuedo_id: String,
    +1379}
    +1380
    +1381#[derive(Clone)]
    +1382struct InternaleCaptchaConfig {
    +1383    config_id: i32,
    +1384    duration: i32,
    +1385    name: String,
    +1386    key: String,
    +1387}
    +1388
    +1389impl From<InternaleCaptchaConfig> for Captcha {
    +1390    fn from(i: InternaleCaptchaConfig) -> Self {
    +1391        Self {
    +1392            config_id: i.config_id,
    +1393            duration: i.duration,
    +1394            description: i.name,
    +1395            key: i.key,
    +1396        }
    +1397    }
    +1398}
    +1399
    +1400struct InnerTraffic {
    +1401    peak_sustainable_traffic: i32,
    +1402    avg_traffic: i32,
    +1403    broke_my_site_traffic: Option<i32>,
    +1404}
    +1405
    +1406impl From<InnerTraffic> for TrafficPattern {
    +1407    fn from(v: InnerTraffic) -> Self {
    +1408        TrafficPattern {
    +1409            broke_my_site_traffic: v.broke_my_site_traffic.as_ref().map(|v| *v as u32),
    +1410            avg_traffic: v.avg_traffic as u32,
    +1411            peak_sustainable_traffic: v.peak_sustainable_traffic as u32,
    +1412        }
    +1413    }
    +1414}
    \ No newline at end of file diff --git a/src/mcaptcha/api/mod.rs.html b/src/mcaptcha/api/mod.rs.html index f04758c1..0e18ac19 100644 --- a/src/mcaptcha/api/mod.rs.html +++ b/src/mcaptcha/api/mod.rs.html @@ -1,15 +1,6 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -pub mod v1;
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/api/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6pub 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 de643662..14738d12 100644 --- a/src/mcaptcha/api/v1/account/delete.rs.html +++ b/src/mcaptcha/api/v1/account/delete.rs.html @@ -1,107 +1,52 @@ -delete.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -
    -use super::auth::runners::Password;
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.account.delete",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn delete_account(
    -    id: Identity,
    -    payload: web::Json<Password>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    use argon2_creds::Config;
    -
    -    let username = id.identity().unwrap();
    -
    -    let hash = data
    -        .db
    -        .get_password(&db_core::Login::Username(&username))
    -        .await?;
    -
    -    if Config::verify(&hash.hash, &payload.password)? {
    -        runners::delete_user(&username, &data).await?;
    -        id.forget();
    -        Ok(HttpResponse::Ok())
    -    } else {
    -        Err(ServiceError::WrongPassword)
    -    }
    -}
    -
    -pub mod runners {
    -
    -    use super::*;
    -
    -    pub async fn delete_user(name: &str, data: &AppData) -> ServiceResult<()> {
    -        data.db.delete_user(name).await?;
    -        Ok(())
    -    }
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(delete_account);
    -}
    -
    \ No newline at end of file +delete.rs - source

    mcaptcha/api/v1/account/
    delete.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8
    +9use super::auth::runners::Password;
    +10use crate::errors::*;
    +11use crate::AppData;
    +12
    +13#[my_codegen::post(
    +14    path = "crate::V1_API_ROUTES.account.delete",
    +15    wrap = "crate::api::v1::get_middleware()"
    +16)]
    +17pub async fn delete_account(
    +18    id: Identity,
    +19    payload: web::Json<Password>,
    +20    data: AppData,
    +21) -> ServiceResult<impl Responder> {
    +22    use argon2_creds::Config;
    +23
    +24    let username = id.identity().unwrap();
    +25
    +26    let hash = data
    +27        .db
    +28        .get_password(&db_core::Login::Username(&username))
    +29        .await?;
    +30
    +31    if Config::verify(&hash.hash, &payload.password)? {
    +32        runners::delete_user(&username, &data).await?;
    +33        id.forget();
    +34        Ok(HttpResponse::Ok())
    +35    } else {
    +36        Err(ServiceError::WrongPassword)
    +37    }
    +38}
    +39
    +40pub mod runners {
    +41
    +42    use super::*;
    +43
    +44    pub async fn delete_user(name: &str, data: &AppData) -> ServiceResult<()> {
    +45        data.db.delete_user(name).await?;
    +46        Ok(())
    +47    }
    +48}
    +49
    +50pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +51    cfg.service(delete_account);
    +52}
    \ 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 a416ab6f..3dd44325 100644 --- a/src/mcaptcha/api/v1/account/email.rs.html +++ b/src/mcaptcha/api/v1/account/email.rs.html @@ -1,121 +1,59 @@ -email.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use db_core::UpdateEmail;
    -use serde::{Deserialize, Serialize};
    -
    -use super::{AccountCheckPayload, AccountCheckResp};
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct Email {
    -    pub email: String,
    -}
    -
    -#[my_codegen::post(path = "crate::V1_API_ROUTES.account.email_exists")]
    -pub async fn email_exists(
    -    payload: web::Json<AccountCheckPayload>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    let exists = data.db.email_exists(&payload.val).await?;
    -
    -    let resp = AccountCheckResp { exists };
    -
    -    Ok(HttpResponse::Ok().json(resp))
    -}
    -
    -/// update email
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.account.update_email",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn set_email(
    -    id: Identity,
    -    payload: web::Json<Email>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -
    -    data.creds.email(&payload.email)?;
    -
    -    let update_email = UpdateEmail {
    -        username: &username,
    -        new_email: &payload.email,
    -    };
    -
    -    data.db.update_email(&update_email).await?;
    -
    -    Ok(HttpResponse::Ok())
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(email_exists);
    -    cfg.service(set_email);
    -}
    -
    \ No newline at end of file +email.rs - source

    mcaptcha/api/v1/account/
    email.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use db_core::UpdateEmail;
    +9use serde::{Deserialize, Serialize};
    +10
    +11use super::{AccountCheckPayload, AccountCheckResp};
    +12use crate::errors::*;
    +13use crate::AppData;
    +14
    +15#[derive(Clone, Debug, Deserialize, Serialize)]
    +16pub struct Email {
    +17    pub email: String,
    +18}
    +19
    +20#[my_codegen::post(path = "crate::V1_API_ROUTES.account.email_exists")]
    +21pub async fn email_exists(
    +22    payload: web::Json<AccountCheckPayload>,
    +23    data: AppData,
    +24) -> ServiceResult<impl Responder> {
    +25    let exists = data.db.email_exists(&payload.val).await?;
    +26
    +27    let resp = AccountCheckResp { exists };
    +28
    +29    Ok(HttpResponse::Ok().json(resp))
    +30}
    +31
    +32/// update email
    +33#[my_codegen::post(
    +34    path = "crate::V1_API_ROUTES.account.update_email",
    +35    wrap = "crate::api::v1::get_middleware()"
    +36)]
    +37async fn set_email(
    +38    id: Identity,
    +39    payload: web::Json<Email>,
    +40    data: AppData,
    +41) -> ServiceResult<impl Responder> {
    +42    let username = id.identity().unwrap();
    +43
    +44    data.creds.email(&payload.email)?;
    +45
    +46    let update_email = UpdateEmail {
    +47        username: &username,
    +48        new_email: &payload.email,
    +49    };
    +50
    +51    data.db.update_email(&update_email).await?;
    +52
    +53    Ok(HttpResponse::Ok())
    +54}
    +55
    +56pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +57    cfg.service(email_exists);
    +58    cfg.service(set_email);
    +59}
    \ 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 386bb2ef..8482ed7e 100644 --- a/src/mcaptcha/api/v1/account/mod.rs.html +++ b/src/mcaptcha/api/v1/account/mod.rs.html @@ -1,147 +1,72 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use serde::{Deserialize, Serialize};
    -
    -pub mod delete;
    -pub mod email;
    -pub mod password;
    -pub mod secret;
    -#[cfg(test)]
    -pub mod test;
    -pub mod username;
    -
    -pub use super::auth;
    -pub use super::mcaptcha;
    -
    -pub mod routes {
    -
    -    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,
    -    }
    -
    -    impl Account {
    -        pub const fn new() -> Account {
    -            let get_secret = "/api/v1/account/secret/get";
    -            let update_secret = "/api/v1/account/secret/update";
    -            let delete = "/api/v1/account/delete";
    -            let email_exists = "/api/v1/account/email/exists";
    -            let username_exists = "/api/v1/account/username/exists";
    -            let update_username = "/api/v1/account/username/update";
    -            let update_email = "/api/v1/account/email/update";
    -            let update_password = "/api/v1/account/password/update";
    -            Account {
    -                delete,
    -                email_exists,
    -                get_secret,
    -                update_email,
    -                update_password,
    -                update_secret,
    -                username_exists,
    -                update_username,
    -            }
    -        }
    -    }
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct AccountCheckPayload {
    -    pub val: String,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct AccountCheckResp {
    -    pub exists: bool,
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    delete::services(cfg);
    -    email::services(cfg);
    -    username::services(cfg);
    -    secret::services(cfg);
    -    password::services(cfg);
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/api/v1/account/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use serde::{Deserialize, Serialize};
    +7
    +8pub mod delete;
    +9pub mod email;
    +10pub mod password;
    +11pub mod secret;
    +12#[cfg(test)]
    +13pub mod test;
    +14pub mod username;
    +15
    +16pub use super::auth;
    +17pub use super::mcaptcha;
    +18
    +19pub mod routes {
    +20
    +21    pub struct Account {
    +22        pub delete: &'static str,
    +23        pub email_exists: &'static str,
    +24        pub get_secret: &'static str,
    +25        pub update_email: &'static str,
    +26        pub update_password: &'static str,
    +27        pub update_secret: &'static str,
    +28        pub username_exists: &'static str,
    +29        pub update_username: &'static str,
    +30    }
    +31
    +32    impl Account {
    +33        pub const fn new() -> Account {
    +34            let get_secret = "/api/v1/account/secret/get";
    +35            let update_secret = "/api/v1/account/secret/update";
    +36            let delete = "/api/v1/account/delete";
    +37            let email_exists = "/api/v1/account/email/exists";
    +38            let username_exists = "/api/v1/account/username/exists";
    +39            let update_username = "/api/v1/account/username/update";
    +40            let update_email = "/api/v1/account/email/update";
    +41            let update_password = "/api/v1/account/password/update";
    +42            Account {
    +43                delete,
    +44                email_exists,
    +45                get_secret,
    +46                update_email,
    +47                update_password,
    +48                update_secret,
    +49                username_exists,
    +50                update_username,
    +51            }
    +52        }
    +53    }
    +54}
    +55
    +56#[derive(Clone, Debug, Deserialize, Serialize)]
    +57pub struct AccountCheckPayload {
    +58    pub val: String,
    +59}
    +60
    +61#[derive(Clone, Debug, Deserialize, Serialize)]
    +62pub struct AccountCheckResp {
    +63    pub exists: bool,
    +64}
    +65
    +66pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +67    delete::services(cfg);
    +68    email::services(cfg);
    +69    username::services(cfg);
    +70    secret::services(cfg);
    +71    password::services(cfg);
    +72}
    \ 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 9432c8ea..80aac681 100644 --- a/src/mcaptcha/api/v1/account/password.rs.html +++ b/src/mcaptcha/api/v1/account/password.rs.html @@ -1,385 +1,191 @@ -password.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use argon2_creds::Config;
    -use db_core::Login;
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::*;
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct ChangePasswordReqest {
    -    pub password: String,
    -    pub new_password: String,
    -    pub confirm_new_password: String,
    -}
    -
    -pub struct UpdatePassword {
    -    pub new_password: String,
    -    pub confirm_new_password: String,
    -}
    -
    -impl From<ChangePasswordReqest> for UpdatePassword {
    -    fn from(s: ChangePasswordReqest) -> Self {
    -        UpdatePassword {
    -            new_password: s.new_password,
    -            confirm_new_password: s.confirm_new_password,
    -        }
    -    }
    -}
    -
    -async fn update_password_runner(
    -    user: &str,
    -    update: UpdatePassword,
    -    data: &Data,
    -) -> ServiceResult<()> {
    -    if update.new_password != update.confirm_new_password {
    -        return Err(ServiceError::PasswordsDontMatch);
    -    }
    -
    -    let new_hash = data.creds.password(&update.new_password)?;
    -
    -    let p = db_core::NameHash {
    -        username: user.to_owned(),
    -        hash: new_hash,
    -    };
    -
    -    data.db.update_password(&p).await?;
    -    Ok(())
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.account.update_password",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn update_user_password(
    -    id: Identity,
    -    data: AppData,
    -    payload: web::Json<ChangePasswordReqest>,
    -) -> ServiceResult<impl Responder> {
    -    if payload.new_password != payload.confirm_new_password {
    -        return Err(ServiceError::PasswordsDontMatch);
    -    }
    -
    -    let username = id.identity().unwrap();
    -
    -    // TODO: verify behavior when account is not found
    -    let res = data.db.get_password(&Login::Username(&username)).await?;
    -
    -    if Config::verify(&res.hash, &payload.password)? {
    -        let update: UpdatePassword = payload.into_inner().into();
    -        update_password_runner(&username, update, &data).await?;
    -        Ok(HttpResponse::Ok())
    -    } else {
    -        Err(ServiceError::WrongPassword)
    -    }
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(update_user_password);
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use super::*;
    -
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use crate::api::v1::ROUTES;
    -    use crate::tests::*;
    -
    -    #[actix_rt::test]
    -    async fn update_password_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        update_password_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn update_password_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        update_password_works(data).await;
    -    }
    -
    -    pub async fn update_password_works(data: ArcData) {
    -        const NAME: &str = "updatepassuser";
    -        const PASSWORD: &str = "longpassword2";
    -        const EMAIL: &str = "updatepassuser@a.com";
    -
    -        let data = &data;
    -
    -        delete_user(data, NAME).await;
    -
    -        let (_, signin_resp) = register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let app = get_app!(data).await;
    -
    -        let new_password = "newpassword";
    -
    -        let update_password = ChangePasswordReqest {
    -            password: PASSWORD.into(),
    -            new_password: new_password.into(),
    -            confirm_new_password: PASSWORD.into(),
    -        };
    -
    -        let res = update_password_runner(NAME, update_password.into(), data).await;
    -        assert!(res.is_err());
    -        assert_eq!(res, Err(ServiceError::PasswordsDontMatch));
    -
    -        let update_password = ChangePasswordReqest {
    -            password: PASSWORD.into(),
    -            new_password: new_password.into(),
    -            confirm_new_password: new_password.into(),
    -        };
    -
    -        assert!(update_password_runner(NAME, update_password.into(), data)
    -            .await
    -            .is_ok());
    -
    -        let update_password = ChangePasswordReqest {
    -            password: new_password.into(),
    -            new_password: new_password.into(),
    -            confirm_new_password: PASSWORD.into(),
    -        };
    -
    -        bad_post_req_test(
    -            data,
    -            NAME,
    -            new_password,
    -            ROUTES.account.update_password,
    -            &update_password,
    -            ServiceError::PasswordsDontMatch,
    -        )
    -        .await;
    -
    -        let update_password = ChangePasswordReqest {
    -            password: PASSWORD.into(),
    -            new_password: PASSWORD.into(),
    -            confirm_new_password: PASSWORD.into(),
    -        };
    -
    -        bad_post_req_test(
    -            data,
    -            NAME,
    -            new_password,
    -            ROUTES.account.update_password,
    -            &update_password,
    -            ServiceError::WrongPassword,
    -        )
    -        .await;
    -
    -        let update_password = ChangePasswordReqest {
    -            password: new_password.into(),
    -            new_password: PASSWORD.into(),
    -            confirm_new_password: PASSWORD.into(),
    -        };
    -
    -        let update_password_resp = test::call_service(
    -            &app,
    -            post_request!(&update_password, ROUTES.account.update_password)
    -                .cookie(cookies)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(update_password_resp.status(), StatusCode::OK);
    -    }
    -}
    -
    \ No newline at end of file +password.rs - source

    mcaptcha/api/v1/account/
    password.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use argon2_creds::Config;
    +9use db_core::Login;
    +10use serde::{Deserialize, Serialize};
    +11
    +12use crate::errors::*;
    +13use crate::*;
    +14
    +15#[derive(Clone, Debug, Deserialize, Serialize)]
    +16pub struct ChangePasswordReqest {
    +17    pub password: String,
    +18    pub new_password: String,
    +19    pub confirm_new_password: String,
    +20}
    +21
    +22pub struct UpdatePassword {
    +23    pub new_password: String,
    +24    pub confirm_new_password: String,
    +25}
    +26
    +27impl From<ChangePasswordReqest> for UpdatePassword {
    +28    fn from(s: ChangePasswordReqest) -> Self {
    +29        UpdatePassword {
    +30            new_password: s.new_password,
    +31            confirm_new_password: s.confirm_new_password,
    +32        }
    +33    }
    +34}
    +35
    +36async fn update_password_runner(
    +37    user: &str,
    +38    update: UpdatePassword,
    +39    data: &Data,
    +40) -> ServiceResult<()> {
    +41    if update.new_password != update.confirm_new_password {
    +42        return Err(ServiceError::PasswordsDontMatch);
    +43    }
    +44
    +45    let new_hash = data.creds.password(&update.new_password)?;
    +46
    +47    let p = db_core::NameHash {
    +48        username: user.to_owned(),
    +49        hash: new_hash,
    +50    };
    +51
    +52    data.db.update_password(&p).await?;
    +53    Ok(())
    +54}
    +55
    +56#[my_codegen::post(
    +57    path = "crate::V1_API_ROUTES.account.update_password",
    +58    wrap = "crate::api::v1::get_middleware()"
    +59)]
    +60async fn update_user_password(
    +61    id: Identity,
    +62    data: AppData,
    +63    payload: web::Json<ChangePasswordReqest>,
    +64) -> ServiceResult<impl Responder> {
    +65    if payload.new_password != payload.confirm_new_password {
    +66        return Err(ServiceError::PasswordsDontMatch);
    +67    }
    +68
    +69    let username = id.identity().unwrap();
    +70
    +71    // TODO: verify behavior when account is not found
    +72    let res = data.db.get_password(&Login::Username(&username)).await?;
    +73
    +74    if Config::verify(&res.hash, &payload.password)? {
    +75        let update: UpdatePassword = payload.into_inner().into();
    +76        update_password_runner(&username, update, &data).await?;
    +77        Ok(HttpResponse::Ok())
    +78    } else {
    +79        Err(ServiceError::WrongPassword)
    +80    }
    +81}
    +82
    +83pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +84    cfg.service(update_user_password);
    +85}
    +86
    +87#[cfg(test)]
    +88pub mod tests {
    +89    use super::*;
    +90
    +91    use actix_web::http::StatusCode;
    +92    use actix_web::test;
    +93
    +94    use crate::api::v1::ROUTES;
    +95    use crate::tests::*;
    +96
    +97    #[actix_rt::test]
    +98    async fn update_password_works_pg() {
    +99        let data = crate::tests::pg::get_data().await;
    +100        update_password_works(data).await;
    +101    }
    +102
    +103    #[actix_rt::test]
    +104    async fn update_password_works_maria() {
    +105        let data = crate::tests::maria::get_data().await;
    +106        update_password_works(data).await;
    +107    }
    +108
    +109    pub async fn update_password_works(data: ArcData) {
    +110        const NAME: &str = "updatepassuser";
    +111        const PASSWORD: &str = "longpassword2";
    +112        const EMAIL: &str = "updatepassuser@a.com";
    +113
    +114        let data = &data;
    +115
    +116        delete_user(data, NAME).await;
    +117
    +118        let (_, signin_resp) = register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +119        let cookies = get_cookie!(signin_resp);
    +120        let app = get_app!(data).await;
    +121
    +122        let new_password = "newpassword";
    +123
    +124        let update_password = ChangePasswordReqest {
    +125            password: PASSWORD.into(),
    +126            new_password: new_password.into(),
    +127            confirm_new_password: PASSWORD.into(),
    +128        };
    +129
    +130        let res = update_password_runner(NAME, update_password.into(), data).await;
    +131        assert!(res.is_err());
    +132        assert_eq!(res, Err(ServiceError::PasswordsDontMatch));
    +133
    +134        let update_password = ChangePasswordReqest {
    +135            password: PASSWORD.into(),
    +136            new_password: new_password.into(),
    +137            confirm_new_password: new_password.into(),
    +138        };
    +139
    +140        assert!(update_password_runner(NAME, update_password.into(), data)
    +141            .await
    +142            .is_ok());
    +143
    +144        let update_password = ChangePasswordReqest {
    +145            password: new_password.into(),
    +146            new_password: new_password.into(),
    +147            confirm_new_password: PASSWORD.into(),
    +148        };
    +149
    +150        bad_post_req_test(
    +151            data,
    +152            NAME,
    +153            new_password,
    +154            ROUTES.account.update_password,
    +155            &update_password,
    +156            ServiceError::PasswordsDontMatch,
    +157        )
    +158        .await;
    +159
    +160        let update_password = ChangePasswordReqest {
    +161            password: PASSWORD.into(),
    +162            new_password: PASSWORD.into(),
    +163            confirm_new_password: PASSWORD.into(),
    +164        };
    +165
    +166        bad_post_req_test(
    +167            data,
    +168            NAME,
    +169            new_password,
    +170            ROUTES.account.update_password,
    +171            &update_password,
    +172            ServiceError::WrongPassword,
    +173        )
    +174        .await;
    +175
    +176        let update_password = ChangePasswordReqest {
    +177            password: new_password.into(),
    +178            new_password: PASSWORD.into(),
    +179            confirm_new_password: PASSWORD.into(),
    +180        };
    +181
    +182        let update_password_resp = test::call_service(
    +183            &app,
    +184            post_request!(&update_password, ROUTES.account.update_password)
    +185                .cookie(cookies)
    +186                .to_request(),
    +187        )
    +188        .await;
    +189        assert_eq!(update_password_resp.status(), StatusCode::OK);
    +190    }
    +191}
    \ 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 1b2bca76..dd304083 100644 --- a/src/mcaptcha/api/v1/account/secret.rs.html +++ b/src/mcaptcha/api/v1/account/secret.rs.html @@ -1,107 +1,52 @@ -secret.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{HttpResponse, Responder};
    -use db_core::prelude::*;
    -
    -use crate::api::v1::mcaptcha::get_random;
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[my_codegen::get(
    -    path = "crate::V1_API_ROUTES.account.get_secret",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn get_secret(id: Identity, data: AppData) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let secret = data.db.get_secret(&username).await?;
    -    Ok(HttpResponse::Ok().json(secret))
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.account.update_secret",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn update_user_secret(
    -    id: Identity,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -
    -    let mut secret;
    -
    -    loop {
    -        secret = get_random(32);
    -
    -        match data.db.update_secret(&username, &secret).await {
    -            Ok(_) => break,
    -            Err(DBError::SecretTaken) => continue,
    -            Err(e) => return Err(e.into()),
    -        }
    -    }
    -
    -    Ok(HttpResponse::Ok())
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(get_secret);
    -    cfg.service(update_user_secret);
    -}
    -
    \ No newline at end of file +secret.rs - source

    mcaptcha/api/v1/account/
    secret.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{HttpResponse, Responder};
    +8use db_core::prelude::*;
    +9
    +10use crate::api::v1::mcaptcha::get_random;
    +11use crate::errors::*;
    +12use crate::AppData;
    +13
    +14#[my_codegen::get(
    +15    path = "crate::V1_API_ROUTES.account.get_secret",
    +16    wrap = "crate::api::v1::get_middleware()"
    +17)]
    +18async fn get_secret(id: Identity, data: AppData) -> ServiceResult<impl Responder> {
    +19    let username = id.identity().unwrap();
    +20    let secret = data.db.get_secret(&username).await?;
    +21    Ok(HttpResponse::Ok().json(secret))
    +22}
    +23
    +24#[my_codegen::post(
    +25    path = "crate::V1_API_ROUTES.account.update_secret",
    +26    wrap = "crate::api::v1::get_middleware()"
    +27)]
    +28async fn update_user_secret(
    +29    id: Identity,
    +30    data: AppData,
    +31) -> ServiceResult<impl Responder> {
    +32    let username = id.identity().unwrap();
    +33
    +34    let mut secret;
    +35
    +36    loop {
    +37        secret = get_random(32);
    +38
    +39        match data.db.update_secret(&username, &secret).await {
    +40            Ok(_) => break,
    +41            Err(DBError::SecretTaken) => continue,
    +42            Err(e) => return Err(e.into()),
    +43        }
    +44    }
    +45
    +46    Ok(HttpResponse::Ok())
    +47}
    +48
    +49pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +50    cfg.service(get_secret);
    +51    cfg.service(update_user_secret);
    +52}
    \ 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 34384c60..ef1c8634 100644 --- a/src/mcaptcha/api/v1/account/username.rs.html +++ b/src/mcaptcha/api/v1/account/username.rs.html @@ -1,135 +1,66 @@ -username.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use serde::{Deserialize, Serialize};
    -
    -use super::{AccountCheckPayload, AccountCheckResp};
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[my_codegen::post(path = "crate::V1_API_ROUTES.account.username_exists")]
    -async fn username_exists(
    -    payload: web::Json<AccountCheckPayload>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    let resp = runners::username_exists(&payload, &data).await?;
    -    Ok(HttpResponse::Ok().json(resp))
    -}
    -
    -pub mod runners {
    -    use super::*;
    -
    -    pub async fn username_exists(
    -        payload: &AccountCheckPayload,
    -        data: &AppData,
    -    ) -> ServiceResult<AccountCheckResp> {
    -        let exists = data.db.username_exists(&payload.val).await?;
    -
    -        Ok(AccountCheckResp { exists })
    -    }
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct Username {
    -    pub username: String,
    -}
    -
    -/// update username
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.account.update_username",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn set_username(
    -    id: Identity,
    -    payload: web::Json<Username>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -
    -    let processed_uname = data.creds.username(&payload.username)?;
    -
    -    data.db.update_username(&username, &processed_uname).await?;
    -
    -    id.forget();
    -    id.remember(processed_uname);
    -
    -    Ok(HttpResponse::Ok())
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(username_exists);
    -    cfg.service(set_username);
    -}
    -
    \ No newline at end of file +username.rs - source

    mcaptcha/api/v1/account/
    username.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use serde::{Deserialize, Serialize};
    +9
    +10use super::{AccountCheckPayload, AccountCheckResp};
    +11use crate::errors::*;
    +12use crate::AppData;
    +13
    +14#[my_codegen::post(path = "crate::V1_API_ROUTES.account.username_exists")]
    +15async fn username_exists(
    +16    payload: web::Json<AccountCheckPayload>,
    +17    data: AppData,
    +18) -> ServiceResult<impl Responder> {
    +19    let resp = runners::username_exists(&payload, &data).await?;
    +20    Ok(HttpResponse::Ok().json(resp))
    +21}
    +22
    +23pub mod runners {
    +24    use super::*;
    +25
    +26    pub async fn username_exists(
    +27        payload: &AccountCheckPayload,
    +28        data: &AppData,
    +29    ) -> ServiceResult<AccountCheckResp> {
    +30        let exists = data.db.username_exists(&payload.val).await?;
    +31
    +32        Ok(AccountCheckResp { exists })
    +33    }
    +34}
    +35
    +36#[derive(Clone, Debug, Deserialize, Serialize)]
    +37pub struct Username {
    +38    pub username: String,
    +39}
    +40
    +41/// update username
    +42#[my_codegen::post(
    +43    path = "crate::V1_API_ROUTES.account.update_username",
    +44    wrap = "crate::api::v1::get_middleware()"
    +45)]
    +46async fn set_username(
    +47    id: Identity,
    +48    payload: web::Json<Username>,
    +49    data: AppData,
    +50) -> ServiceResult<impl Responder> {
    +51    let username = id.identity().unwrap();
    +52
    +53    let processed_uname = data.creds.username(&payload.username)?;
    +54
    +55    data.db.update_username(&username, &processed_uname).await?;
    +56
    +57    id.forget();
    +58    id.remember(processed_uname);
    +59
    +60    Ok(HttpResponse::Ok())
    +61}
    +62
    +63pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +64    cfg.service(username_exists);
    +65    cfg.service(set_username);
    +66}
    \ 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 6d2cd403..96a011a1 100644 --- a/src/mcaptcha/api/v1/auth.rs.html +++ b/src/mcaptcha/api/v1/auth.rs.html @@ -1,383 +1,190 @@ -auth.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::http::header;
    -use actix_web::{web, HttpResponse, Responder};
    -use db_core::errors::DBError;
    -use serde::{Deserialize, Serialize};
    -
    -use super::mcaptcha::get_random;
    -use crate::errors::*;
    -use crate::AppData;
    -
    -pub mod routes {
    -    use actix_auth_middleware::GetLoginRoute;
    -
    -    pub struct Auth {
    -        pub logout: &'static str,
    -        pub login: &'static str,
    -        pub register: &'static str,
    -    }
    -
    -    impl Auth {
    -        pub const fn new() -> Auth {
    -            let login = "/api/v1/signin";
    -            let logout = "/logout";
    -            let register = "/api/v1/signup";
    -            Auth {
    -                logout,
    -                login,
    -                register,
    -            }
    -        }
    -    }
    -
    -    impl GetLoginRoute for Auth {
    -        fn get_login_route(&self, src: Option<&str>) -> String {
    -            if let Some(redirect_to) = src {
    -                format!(
    -                    "{}?redirect_to={}",
    -                    self.login,
    -                    urlencoding::encode(redirect_to)
    -                )
    -            } else {
    -                self.login.to_string()
    -            }
    -        }
    -    }
    -}
    -
    -pub mod runners {
    -    use super::*;
    -
    -    #[derive(Clone, Debug, Deserialize, Serialize)]
    -    pub struct Register {
    -        pub username: String,
    -        pub password: String,
    -        pub confirm_password: String,
    -        pub email: Option<String>,
    -    }
    -
    -    #[derive(Clone, Debug, Deserialize, Serialize)]
    -    pub struct Login {
    -        // login accepts both username and email under "username field"
    -        // TODO update all instances where login is used
    -        pub login: String,
    -        pub password: String,
    -    }
    -
    -    #[derive(Clone, Debug, Deserialize, Serialize)]
    -    pub struct Password {
    -        pub password: String,
    -    }
    -
    -    /// returns Ok(()) when everything checks out and the user is authenticated. Errors otherwise
    -    pub async fn login_runner(payload: Login, data: &AppData) -> ServiceResult<String> {
    -        use argon2_creds::Config;
    -
    -        let verify = |stored: &str, received: &str| {
    -            if Config::verify(stored, received)? {
    -                Ok(())
    -            } else {
    -                Err(ServiceError::WrongPassword)
    -            }
    -        };
    -
    -        let s = if payload.login.contains('@') {
    -            data.db
    -                .get_password(&db_core::Login::Email(&payload.login))
    -                .await?
    -        } else {
    -            let username = data.creds.username(&payload.login)?;
    -            data.db
    -                .get_password(&db_core::Login::Username(&username))
    -                .await?
    -        };
    -
    -        verify(&s.hash, &payload.password)?;
    -        Ok(s.username)
    -    }
    -    pub async fn register_runner(
    -        payload: &Register,
    -        data: &AppData,
    -    ) -> ServiceResult<()> {
    -        if !data.settings.allow_registration {
    -            return Err(ServiceError::ClosedForRegistration);
    -        }
    -
    -        if payload.password != payload.confirm_password {
    -            return Err(ServiceError::PasswordsDontMatch);
    -        }
    -        let username = data.creds.username(&payload.username)?;
    -        let hash = data.creds.password(&payload.password)?;
    -
    -        if let Some(email) = &payload.email {
    -            data.creds.email(email)?;
    -        }
    -
    -        let mut secret;
    -
    -        loop {
    -            secret = get_random(32);
    -
    -            let p = db_core::Register {
    -                username: &username,
    -                hash: &hash,
    -                email: payload.email.as_deref(),
    -                secret: &secret,
    -            };
    -
    -            match data.db.register(&p).await {
    -                Ok(_) => break,
    -                Err(DBError::SecretTaken) => continue,
    -                Err(e) => return Err(e.into()),
    -            }
    -        }
    -
    -        Ok(())
    -    }
    -}
    -
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    cfg.service(register);
    -    cfg.service(login);
    -    cfg.service(signout);
    -}
    -#[my_codegen::post(path = "crate::V1_API_ROUTES.auth.register")]
    -async fn register(
    -    payload: web::Json<runners::Register>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    runners::register_runner(&payload, &data).await?;
    -    Ok(HttpResponse::Ok())
    -}
    -
    -#[my_codegen::post(path = "crate::V1_API_ROUTES.auth.login")]
    -async fn login(
    -    id: Identity,
    -    payload: web::Json<runners::Login>,
    -    query: web::Query<super::RedirectQuery>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    let username = runners::login_runner(payload.into_inner(), &data).await?;
    -    id.remember(username);
    -    //    Ok(HttpResponse::Ok())
    -
    -    let query = query.into_inner();
    -    if let Some(redirect_to) = query.redirect_to {
    -        Ok(HttpResponse::Found()
    -            .append_header((header::LOCATION, redirect_to))
    -            .finish())
    -    } else {
    -        Ok(HttpResponse::Ok().finish())
    -    }
    -}
    -
    -#[my_codegen::get(
    -    path = "crate::V1_API_ROUTES.auth.logout",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn signout(id: Identity) -> impl Responder {
    -    if id.identity().is_some() {
    -        id.forget();
    -    }
    -    HttpResponse::Found()
    -        .append_header((header::LOCATION, crate::PAGES.auth.login))
    -        .finish()
    -}
    -
    \ No newline at end of file +auth.rs - source

    mcaptcha/api/v1/
    auth.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::http::header;
    +8use actix_web::{web, HttpResponse, Responder};
    +9use db_core::errors::DBError;
    +10use serde::{Deserialize, Serialize};
    +11
    +12use super::mcaptcha::get_random;
    +13use crate::errors::*;
    +14use crate::AppData;
    +15
    +16pub mod routes {
    +17    use actix_auth_middleware::GetLoginRoute;
    +18
    +19    pub struct Auth {
    +20        pub logout: &'static str,
    +21        pub login: &'static str,
    +22        pub register: &'static str,
    +23    }
    +24
    +25    impl Auth {
    +26        pub const fn new() -> Auth {
    +27            let login = "/api/v1/signin";
    +28            let logout = "/logout";
    +29            let register = "/api/v1/signup";
    +30            Auth {
    +31                logout,
    +32                login,
    +33                register,
    +34            }
    +35        }
    +36    }
    +37
    +38    impl GetLoginRoute for Auth {
    +39        fn get_login_route(&self, src: Option<&str>) -> String {
    +40            if let Some(redirect_to) = src {
    +41                format!(
    +42                    "{}?redirect_to={}",
    +43                    self.login,
    +44                    urlencoding::encode(redirect_to)
    +45                )
    +46            } else {
    +47                self.login.to_string()
    +48            }
    +49        }
    +50    }
    +51}
    +52
    +53pub mod runners {
    +54    use super::*;
    +55
    +56    #[derive(Clone, Debug, Deserialize, Serialize)]
    +57    pub struct Register {
    +58        pub username: String,
    +59        pub password: String,
    +60        pub confirm_password: String,
    +61        pub email: Option<String>,
    +62    }
    +63
    +64    #[derive(Clone, Debug, Deserialize, Serialize)]
    +65    pub struct Login {
    +66        // login accepts both username and email under "username field"
    +67        // TODO update all instances where login is used
    +68        pub login: String,
    +69        pub password: String,
    +70    }
    +71
    +72    #[derive(Clone, Debug, Deserialize, Serialize)]
    +73    pub struct Password {
    +74        pub password: String,
    +75    }
    +76
    +77    /// returns Ok(()) when everything checks out and the user is authenticated. Errors otherwise
    +78    pub async fn login_runner(payload: Login, data: &AppData) -> ServiceResult<String> {
    +79        use argon2_creds::Config;
    +80
    +81        let verify = |stored: &str, received: &str| {
    +82            if Config::verify(stored, received)? {
    +83                Ok(())
    +84            } else {
    +85                Err(ServiceError::WrongPassword)
    +86            }
    +87        };
    +88
    +89        let s = if payload.login.contains('@') {
    +90            data.db
    +91                .get_password(&db_core::Login::Email(&payload.login))
    +92                .await?
    +93        } else {
    +94            let username = data.creds.username(&payload.login)?;
    +95            data.db
    +96                .get_password(&db_core::Login::Username(&username))
    +97                .await?
    +98        };
    +99
    +100        verify(&s.hash, &payload.password)?;
    +101        Ok(s.username)
    +102    }
    +103    pub async fn register_runner(
    +104        payload: &Register,
    +105        data: &AppData,
    +106    ) -> ServiceResult<()> {
    +107        if !data.settings.allow_registration {
    +108            return Err(ServiceError::ClosedForRegistration);
    +109        }
    +110
    +111        if payload.password != payload.confirm_password {
    +112            return Err(ServiceError::PasswordsDontMatch);
    +113        }
    +114        let username = data.creds.username(&payload.username)?;
    +115        let hash = data.creds.password(&payload.password)?;
    +116
    +117        if let Some(email) = &payload.email {
    +118            data.creds.email(email)?;
    +119        }
    +120
    +121        let mut secret;
    +122
    +123        loop {
    +124            secret = get_random(32);
    +125
    +126            let p = db_core::Register {
    +127                username: &username,
    +128                hash: &hash,
    +129                email: payload.email.as_deref(),
    +130                secret: &secret,
    +131            };
    +132
    +133            match data.db.register(&p).await {
    +134                Ok(_) => break,
    +135                Err(DBError::SecretTaken) => continue,
    +136                Err(e) => return Err(e.into()),
    +137            }
    +138        }
    +139
    +140        Ok(())
    +141    }
    +142}
    +143
    +144pub fn services(cfg: &mut web::ServiceConfig) {
    +145    cfg.service(register);
    +146    cfg.service(login);
    +147    cfg.service(signout);
    +148}
    +149#[my_codegen::post(path = "crate::V1_API_ROUTES.auth.register")]
    +150async fn register(
    +151    payload: web::Json<runners::Register>,
    +152    data: AppData,
    +153) -> ServiceResult<impl Responder> {
    +154    runners::register_runner(&payload, &data).await?;
    +155    Ok(HttpResponse::Ok())
    +156}
    +157
    +158#[my_codegen::post(path = "crate::V1_API_ROUTES.auth.login")]
    +159async fn login(
    +160    id: Identity,
    +161    payload: web::Json<runners::Login>,
    +162    query: web::Query<super::RedirectQuery>,
    +163    data: AppData,
    +164) -> ServiceResult<impl Responder> {
    +165    let username = runners::login_runner(payload.into_inner(), &data).await?;
    +166    id.remember(username);
    +167    //    Ok(HttpResponse::Ok())
    +168
    +169    let query = query.into_inner();
    +170    if let Some(redirect_to) = query.redirect_to {
    +171        Ok(HttpResponse::Found()
    +172            .append_header((header::LOCATION, redirect_to))
    +173            .finish())
    +174    } else {
    +175        Ok(HttpResponse::Ok().finish())
    +176    }
    +177}
    +178
    +179#[my_codegen::get(
    +180    path = "crate::V1_API_ROUTES.auth.logout",
    +181    wrap = "crate::api::v1::get_middleware()"
    +182)]
    +183async fn signout(id: Identity) -> impl Responder {
    +184    if id.identity().is_some() {
    +185        id.forget();
    +186    }
    +187    HttpResponse::Found()
    +188        .append_header((header::LOCATION, crate::PAGES.auth.login))
    +189        .finish()
    +190}
    \ 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 69707896..a0a9087b 100644 --- a/src/mcaptcha/api/v1/mcaptcha/create.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/create.rs.html @@ -1,207 +1,102 @@ -create.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use libmcaptcha::defense::Level;
    -use serde::{Deserialize, Serialize};
    -
    -use db_core::errors::DBError;
    -use db_core::CreateCaptcha as DBCreateCaptcha;
    -
    -use super::get_random;
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[derive(Serialize, Deserialize)]
    -pub struct CreateCaptcha {
    -    pub levels: Vec<Level>,
    -    pub duration: u32,
    -    pub description: String,
    -    pub publish_benchmarks: bool,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct MCaptchaDetails {
    -    pub name: String,
    -    pub key: String,
    -}
    -
    -// TODO redo mcaptcha table to include levels as json field
    -// so that the whole thing can be added/udpaed in a single stroke
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.create",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn create(
    -    payload: web::Json<CreateCaptcha>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let mcaptcha_config = runner::create(&payload, &data, &username).await?;
    -    if payload.publish_benchmarks {
    -        data.db
    -            .analytics_create_psuedo_id_if_not_exists(&mcaptcha_config.key)
    -            .await?;
    -    }
    -    Ok(HttpResponse::Ok().json(mcaptcha_config))
    -}
    -
    -pub mod runner {
    -    use super::*;
    -    use libmcaptcha::DefenseBuilder;
    -
    -    pub async fn create(
    -        payload: &CreateCaptcha,
    -        data: &AppData,
    -        username: &str,
    -    ) -> ServiceResult<MCaptchaDetails> {
    -        let mut defense = DefenseBuilder::default();
    -        for level in payload.levels.iter() {
    -            defense.add_level(*level)?;
    -        }
    -
    -        defense.build()?;
    -
    -        let mut key;
    -        let duration = payload.duration as i32;
    -        loop {
    -            key = get_random(32);
    -            let p = DBCreateCaptcha {
    -                description: &payload.description,
    -                key: &key,
    -                duration,
    -            };
    -
    -            match data.db.create_captcha(username, &p).await {
    -                Ok(_) => break,
    -                Err(DBError::SecretTaken) => continue,
    -                Err(e) => return Err(e.into()),
    -            }
    -        }
    -        data.db
    -            .add_captcha_levels(username, &key, &payload.levels)
    -            .await?;
    -
    -        if payload.publish_benchmarks {
    -            data.db
    -                .analytics_create_psuedo_id_if_not_exists(&key)
    -                .await?;
    -        }
    -
    -        let mcaptcha_config = MCaptchaDetails {
    -            name: payload.description.clone(),
    -            key,
    -        };
    -
    -        Ok(mcaptcha_config)
    -    }
    -}
    -
    \ No newline at end of file +create.rs - source

    mcaptcha/api/v1/mcaptcha/
    create.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use libmcaptcha::defense::Level;
    +9use serde::{Deserialize, Serialize};
    +10
    +11use db_core::errors::DBError;
    +12use db_core::CreateCaptcha as DBCreateCaptcha;
    +13
    +14use super::get_random;
    +15use crate::errors::*;
    +16use crate::AppData;
    +17
    +18#[derive(Serialize, Deserialize)]
    +19pub struct CreateCaptcha {
    +20    pub levels: Vec<Level>,
    +21    pub duration: u32,
    +22    pub description: String,
    +23    pub publish_benchmarks: bool,
    +24}
    +25
    +26#[derive(Clone, Debug, Deserialize, Serialize)]
    +27pub struct MCaptchaDetails {
    +28    pub name: String,
    +29    pub key: String,
    +30}
    +31
    +32// TODO redo mcaptcha table to include levels as json field
    +33// so that the whole thing can be added/udpaed in a single stroke
    +34#[my_codegen::post(
    +35    path = "crate::V1_API_ROUTES.captcha.create",
    +36    wrap = "crate::api::v1::get_middleware()"
    +37)]
    +38pub async fn create(
    +39    payload: web::Json<CreateCaptcha>,
    +40    data: AppData,
    +41    id: Identity,
    +42) -> ServiceResult<impl Responder> {
    +43    let username = id.identity().unwrap();
    +44    let mcaptcha_config = runner::create(&payload, &data, &username).await?;
    +45    if payload.publish_benchmarks {
    +46        data.db
    +47            .analytics_create_psuedo_id_if_not_exists(&mcaptcha_config.key)
    +48            .await?;
    +49    }
    +50    Ok(HttpResponse::Ok().json(mcaptcha_config))
    +51}
    +52
    +53pub mod runner {
    +54    use super::*;
    +55    use libmcaptcha::DefenseBuilder;
    +56
    +57    pub async fn create(
    +58        payload: &CreateCaptcha,
    +59        data: &AppData,
    +60        username: &str,
    +61    ) -> ServiceResult<MCaptchaDetails> {
    +62        let mut defense = DefenseBuilder::default();
    +63        for level in payload.levels.iter() {
    +64            defense.add_level(*level)?;
    +65        }
    +66
    +67        defense.build()?;
    +68
    +69        let mut key;
    +70        let duration = payload.duration as i32;
    +71        loop {
    +72            key = get_random(32);
    +73            let p = DBCreateCaptcha {
    +74                description: &payload.description,
    +75                key: &key,
    +76                duration,
    +77            };
    +78
    +79            match data.db.create_captcha(username, &p).await {
    +80                Ok(_) => break,
    +81                Err(DBError::SecretTaken) => continue,
    +82                Err(e) => return Err(e.into()),
    +83            }
    +84        }
    +85        data.db
    +86            .add_captcha_levels(username, &key, &payload.levels)
    +87            .await?;
    +88
    +89        if payload.publish_benchmarks {
    +90            data.db
    +91                .analytics_create_psuedo_id_if_not_exists(&key)
    +92                .await?;
    +93        }
    +94
    +95        let mcaptcha_config = MCaptchaDetails {
    +96            name: payload.description.clone(),
    +97            key,
    +98        };
    +99
    +100        Ok(mcaptcha_config)
    +101    }
    +102}
    \ 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 01dc967e..8e358a1b 100644 --- a/src/mcaptcha/api/v1/mcaptcha/delete.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/delete.rs.html @@ -1,97 +1,47 @@ -delete.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use libmcaptcha::master::messages::RemoveCaptcha;
    -use serde::{Deserialize, Serialize};
    -
    -use db_core::Login;
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct DeleteCaptcha {
    -    pub key: String,
    -    pub password: String,
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.delete",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn delete(
    -    payload: web::Json<DeleteCaptcha>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    use argon2_creds::Config;
    -
    -    let username = id.identity().unwrap();
    -
    -    let hash = data.db.get_password(&Login::Username(&username)).await?;
    -
    -    if !Config::verify(&hash.hash, &payload.password)? {
    -        return Err(ServiceError::WrongPassword);
    -    }
    -    let payload = payload.into_inner();
    -    data.db.delete_captcha(&username, &payload.key).await?;
    -
    -    if let Err(err) = data.captcha.remove(RemoveCaptcha(payload.key)).await {
    -        log::error!("Error while trying to remove captcha from cache {}", err);
    -    }
    -    Ok(HttpResponse::Ok())
    -}
    -
    \ No newline at end of file +delete.rs - source

    mcaptcha/api/v1/mcaptcha/
    delete.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use libmcaptcha::master::messages::RemoveCaptcha;
    +9use serde::{Deserialize, Serialize};
    +10
    +11use db_core::Login;
    +12
    +13use crate::errors::*;
    +14use crate::AppData;
    +15
    +16#[derive(Clone, Debug, Deserialize, Serialize)]
    +17pub struct DeleteCaptcha {
    +18    pub key: String,
    +19    pub password: String,
    +20}
    +21
    +22#[my_codegen::post(
    +23    path = "crate::V1_API_ROUTES.captcha.delete",
    +24    wrap = "crate::api::v1::get_middleware()"
    +25)]
    +26async fn delete(
    +27    payload: web::Json<DeleteCaptcha>,
    +28    data: AppData,
    +29    id: Identity,
    +30) -> ServiceResult<impl Responder> {
    +31    use argon2_creds::Config;
    +32
    +33    let username = id.identity().unwrap();
    +34
    +35    let hash = data.db.get_password(&Login::Username(&username)).await?;
    +36
    +37    if !Config::verify(&hash.hash, &payload.password)? {
    +38        return Err(ServiceError::WrongPassword);
    +39    }
    +40    let payload = payload.into_inner();
    +41    data.db.delete_captcha(&username, &payload.key).await?;
    +42
    +43    if let Err(err) = data.captcha.remove(RemoveCaptcha(payload.key)).await {
    +44        log::error!("Error while trying to remove captcha from cache {}", err);
    +45    }
    +46    Ok(HttpResponse::Ok())
    +47}
    \ 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 a312e3b0..4889ab0f 100644 --- a/src/mcaptcha/api/v1/mcaptcha/easy.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/easy.rs.html @@ -1,1079 +1,538 @@ -easy.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    -400
    -401
    -402
    -403
    -404
    -405
    -406
    -407
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    -424
    -425
    -426
    -427
    -428
    -429
    -430
    -431
    -432
    -433
    -434
    -435
    -436
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    -464
    -465
    -466
    -467
    -468
    -469
    -470
    -471
    -472
    -473
    -474
    -475
    -476
    -477
    -478
    -479
    -480
    -481
    -482
    -483
    -484
    -485
    -486
    -487
    -488
    -489
    -490
    -491
    -492
    -493
    -494
    -495
    -496
    -497
    -498
    -499
    -500
    -501
    -502
    -503
    -504
    -505
    -506
    -507
    -508
    -509
    -510
    -511
    -512
    -513
    -514
    -515
    -516
    -517
    -518
    -519
    -520
    -521
    -522
    -523
    -524
    -525
    -526
    -527
    -528
    -529
    -530
    -531
    -532
    -533
    -534
    -535
    -536
    -537
    -538
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use libmcaptcha::{defense::Level, defense::LevelBuilder};
    -use serde::{Deserialize, Serialize};
    -
    -use db_core::TrafficPattern;
    -
    -use super::create::{runner::create as create_runner, CreateCaptcha};
    -use super::update::{runner::update_captcha as update_captcha_runner, UpdateCaptcha};
    -use crate::errors::*;
    -use crate::settings::DefaultDifficultyStrategy;
    -use crate::AppData;
    -
    -pub mod routes {
    -    pub struct Easy {
    -        /// easy is using defaults
    -        pub create: &'static str,
    -        pub update: &'static str,
    -    }
    -
    -    impl Easy {
    -        pub const fn new() -> Self {
    -            Self {
    -                create: "/api/v1/mcaptcha/add/easy",
    -                update: "/api/v1/mcaptcha/update/easy",
    -            }
    -        }
    -    }
    -}
    -
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    cfg.service(update);
    -    cfg.service(create);
    -}
    -
    -#[derive(Default, Serialize, Deserialize, Clone, Debug)]
    -/// User's traffic pattern; used in generating a captcha configuration
    -pub struct TrafficPatternRequest {
    -    /// average traffic of user's website
    -    pub avg_traffic: u32,
    -    /// the peak traffic that the user's website can handle
    -    pub peak_sustainable_traffic: u32,
    -    /// traffic that bought the user's website down; optional
    -    pub broke_my_site_traffic: Option<u32>,
    -    /// Captcha description
    -    pub description: String,
    -
    -    /// publish benchmarks
    -    pub publish_benchmarks: bool,
    -}
    -
    -impl From<&TrafficPatternRequest> for TrafficPattern {
    -    fn from(t: &TrafficPatternRequest) -> Self {
    -        TrafficPattern {
    -            avg_traffic: t.avg_traffic,
    -            peak_sustainable_traffic: t.peak_sustainable_traffic,
    -            broke_my_site_traffic: t.broke_my_site_traffic,
    -        }
    -    }
    -}
    -
    -pub fn calculate(
    -    tp: &TrafficPattern,
    -    strategy: &DefaultDifficultyStrategy,
    -) -> ServiceResult<Vec<Level>> {
    -    let mut levels = vec![
    -        LevelBuilder::default()
    -            .difficulty_factor(strategy.avg_traffic_difficulty)?
    -            .visitor_threshold(tp.avg_traffic)
    -            .build()?,
    -        LevelBuilder::default()
    -            .difficulty_factor(strategy.peak_sustainable_traffic_difficulty)?
    -            .visitor_threshold(tp.peak_sustainable_traffic)
    -            .build()?,
    -    ];
    -    let mut highest_level = LevelBuilder::default();
    -    highest_level.difficulty_factor(strategy.broke_my_site_traffic_difficulty)?;
    -
    -    match tp.broke_my_site_traffic {
    -        Some(broke_my_site_traffic) => {
    -            highest_level.visitor_threshold(broke_my_site_traffic)
    -        }
    -        None => match tp
    -            .peak_sustainable_traffic
    -            .checked_add(tp.peak_sustainable_traffic / 2)
    -        {
    -            Some(num) => highest_level.visitor_threshold(num),
    -            // TODO check for overflow: database saves these values as i32, so this u32 is cast
    -            // into i32. Should choose bigger number or casts properly
    -            None => highest_level.visitor_threshold(u32::MAX),
    -        },
    -    };
    -
    -    levels.push(highest_level.build()?);
    -
    -    Ok(levels)
    -}
    -
    -async fn calculate_with_percentile(
    -    data: &AppData,
    -    tp: &TrafficPattern,
    -) -> ServiceResult<Option<Vec<Level>>> {
    -    use crate::api::v1::stats::{percentile_bench_runner, PercentileReq};
    -
    -    let strategy = &data.settings.captcha.default_difficulty_strategy;
    -
    -    if strategy.avg_traffic_time.is_none()
    -        && strategy.peak_sustainable_traffic_time.is_none()
    -        && strategy.broke_my_site_traffic_time.is_none()
    -    {
    -        return Ok(None);
    -    }
    -
    -    let mut req = PercentileReq {
    -        time: strategy.avg_traffic_time.unwrap(),
    -        percentile: 90.00,
    -    };
    -    let resp = percentile_bench_runner(data, &req).await?;
    -    if resp.difficulty_factor.is_none() {
    -        return Ok(None);
    -    }
    -    let avg_traffic_difficulty = resp.difficulty_factor.unwrap();
    -
    -    req.time = strategy.peak_sustainable_traffic_time.unwrap();
    -    let resp = percentile_bench_runner(data, &req).await?;
    -    if resp.difficulty_factor.is_none() {
    -        return Ok(None);
    -    }
    -    let peak_sustainable_traffic_difficulty = resp.difficulty_factor.unwrap();
    -
    -    req.time = strategy.broke_my_site_traffic_time.unwrap();
    -    let resp = percentile_bench_runner(data, &req).await?;
    -    let broke_my_site_traffic_difficulty = if resp.difficulty_factor.is_none() {
    -        resp.difficulty_factor.unwrap()
    -    } else {
    -        peak_sustainable_traffic_difficulty * 2
    -    };
    -
    -    let mut levels = vec![
    -        LevelBuilder::default()
    -            .difficulty_factor(avg_traffic_difficulty)?
    -            .visitor_threshold(tp.avg_traffic)
    -            .build()?,
    -        LevelBuilder::default()
    -            .difficulty_factor(peak_sustainable_traffic_difficulty)?
    -            .visitor_threshold(tp.peak_sustainable_traffic)
    -            .build()?,
    -    ];
    -    let mut highest_level = LevelBuilder::default();
    -    highest_level.difficulty_factor(broke_my_site_traffic_difficulty)?;
    -
    -    match tp.broke_my_site_traffic {
    -        Some(broke_my_site_traffic) => {
    -            highest_level.visitor_threshold(broke_my_site_traffic)
    -        }
    -        None => match tp
    -            .peak_sustainable_traffic
    -            .checked_add(tp.peak_sustainable_traffic / 2)
    -        {
    -            Some(num) => highest_level.visitor_threshold(num),
    -            // TODO check for overflow: database saves these values as i32, so this u32 is cast
    -            // into i32. Should choose bigger number or casts properly
    -            None => highest_level.visitor_threshold(u32::MAX),
    -        },
    -    };
    -
    -    levels.push(highest_level.build()?);
    -
    -    Ok(Some(levels))
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.easy.create",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn create(
    -    payload: web::Json<TrafficPatternRequest>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let payload = payload.into_inner();
    -    let pattern = (&payload).into();
    -    let levels = if let Some(levels) = calculate_with_percentile(&data, &pattern).await?
    -    {
    -        levels
    -    } else {
    -        calculate(&pattern, &data.settings.captcha.default_difficulty_strategy)?
    -    };
    -    let msg = CreateCaptcha {
    -        levels,
    -        duration: data.settings.captcha.default_difficulty_strategy.duration,
    -        description: payload.description,
    -        publish_benchmarks: payload.publish_benchmarks,
    -    };
    -
    -    let mcaptcha_config = create_runner(&msg, &data, &username).await?;
    -    data.db
    -        .add_traffic_pattern(&username, &mcaptcha_config.key, &pattern)
    -        .await?;
    -
    -    Ok(HttpResponse::Ok().json(mcaptcha_config))
    -}
    -
    -#[derive(Serialize, Deserialize, Clone, Debug)]
    -pub struct UpdateTrafficPattern {
    -    pub pattern: TrafficPatternRequest,
    -    pub key: String,
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.easy.update",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -async fn update(
    -    payload: web::Json<UpdateTrafficPattern>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let payload = payload.into_inner();
    -    update_runner(&data, payload, username).await?;
    -    Ok(HttpResponse::Ok())
    -}
    -
    -pub async fn update_runner(
    -    data: &AppData,
    -    payload: UpdateTrafficPattern,
    -    username: String,
    -) -> ServiceResult<()> {
    -    let pattern = (&payload.pattern).into();
    -    let levels =
    -        calculate(&pattern, &data.settings.captcha.default_difficulty_strategy)?;
    -
    -    let msg = UpdateCaptcha {
    -        levels,
    -        duration: data.settings.captcha.default_difficulty_strategy.duration,
    -        description: payload.pattern.description,
    -        key: payload.key,
    -        publish_benchmarks: payload.pattern.publish_benchmarks,
    -    };
    -
    -    update_captcha_runner(&msg, &data, &username).await?;
    -
    -    data.db.delete_traffic_pattern(&username, &msg.key).await?;
    -
    -    data.db
    -        .add_traffic_pattern(&username, &msg.key, &pattern)
    -        .await?;
    -
    -    Ok(())
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -    use actix_web::web::Bytes;
    -
    -    use super::*;
    -    use crate::api::v1::mcaptcha::create::MCaptchaDetails;
    -    use crate::api::v1::ROUTES;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    mod isoloated_test {
    -        use super::{calculate, LevelBuilder};
    -
    -        use db_core::TrafficPattern;
    -
    -        #[test]
    -        fn easy_configuration_works() {
    -            let settings = crate::tests::get_settings();
    -
    -            let mut payload = TrafficPattern {
    -                avg_traffic: 100_000,
    -                peak_sustainable_traffic: 1_000_000,
    -                broke_my_site_traffic: Some(10_000_000),
    -            };
    -
    -            let strategy = &settings.captcha.default_difficulty_strategy;
    -            let l1 = LevelBuilder::default()
    -                .difficulty_factor(strategy.avg_traffic_difficulty)
    -                .unwrap()
    -                .visitor_threshold(payload.avg_traffic)
    -                .build()
    -                .unwrap();
    -
    -            let l2 = LevelBuilder::default()
    -                .difficulty_factor(strategy.peak_sustainable_traffic_difficulty)
    -                .unwrap()
    -                .visitor_threshold(payload.peak_sustainable_traffic)
    -                .build()
    -                .unwrap();
    -            let l3 = LevelBuilder::default()
    -                .difficulty_factor(strategy.broke_my_site_traffic_difficulty)
    -                .unwrap()
    -                .visitor_threshold(payload.broke_my_site_traffic.unwrap())
    -                .build()
    -                .unwrap();
    -
    -            let levels = vec![l1, l2, l3];
    -            assert_eq!(calculate(&payload, strategy).unwrap(), levels);
    -
    -            let estimated_lmax = LevelBuilder::default()
    -                .difficulty_factor(strategy.broke_my_site_traffic_difficulty)
    -                .unwrap()
    -                .visitor_threshold(1500000)
    -                .build()
    -                .unwrap();
    -            payload.broke_my_site_traffic = None;
    -            assert_eq!(
    -                calculate(&payload, strategy).unwrap(),
    -                vec![l1, l2, estimated_lmax]
    -            );
    -
    -            let lmax = LevelBuilder::default()
    -                .difficulty_factor(strategy.broke_my_site_traffic_difficulty)
    -                .unwrap()
    -                .visitor_threshold(u32::MAX)
    -                .build()
    -                .unwrap();
    -
    -            let very_large_l2_peak_traffic = u32::MAX - 1;
    -            let very_large_l2 = LevelBuilder::default()
    -                .difficulty_factor(strategy.peak_sustainable_traffic_difficulty)
    -                .unwrap()
    -                .visitor_threshold(very_large_l2_peak_traffic)
    -                .build()
    -                .unwrap();
    -
    -            //        payload.broke_my_site_traffic = Some(very_large_l2_peak_traffic);
    -            payload.peak_sustainable_traffic = very_large_l2_peak_traffic;
    -            assert_eq!(
    -                calculate(&payload, strategy).unwrap(),
    -                vec![l1, very_large_l2, lmax]
    -            );
    -        }
    -    }
    -
    -    #[actix_rt::test]
    -    async fn easy_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        easy_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn easy_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        easy_works(data).await;
    -    }
    -
    -    pub async fn easy_works(data: ArcData) {
    -        const NAME: &str = "defaultuserconfgworks";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL: &str = "defaultuserconfgworks@a.com";
    -        let data = &data;
    -
    -        delete_user(data, NAME).await;
    -
    -        let (_creds, signin_resp) =
    -            register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let app = get_app!(data).await;
    -
    -        let payload = TrafficPatternRequest {
    -            avg_traffic: 100_000,
    -            peak_sustainable_traffic: 1_000_000,
    -            broke_my_site_traffic: Some(10_000_000),
    -            description: NAME.into(),
    -            publish_benchmarks: false,
    -        };
    -
    -        let default_levels = calculate(
    -            &(&payload).into(),
    -            &data.settings.captcha.default_difficulty_strategy,
    -        )
    -        .unwrap();
    -
    -        // START create_easy
    -
    -        let add_token_resp = test::call_service(
    -            &app,
    -            post_request!(&payload, ROUTES.captcha.easy.create)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(add_token_resp.status(), StatusCode::OK);
    -        let token_key: MCaptchaDetails = test::read_body_json(add_token_resp).await;
    -
    -        let get_level_resp = test::call_service(
    -            &app,
    -            post_request!(&token_key, ROUTES.captcha.get)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(get_level_resp.status(), StatusCode::OK);
    -        let res_levels: Vec<Level> = test::read_body_json(get_level_resp).await;
    -        assert_eq!(res_levels, default_levels);
    -        assert!(!data
    -            .db
    -            .analytics_captcha_is_published(&token_key.key)
    -            .await
    -            .unwrap());
    -        // END create_easy
    -
    -        // START update_easy
    -        let update_pattern = TrafficPatternRequest {
    -            avg_traffic: 1_000,
    -            peak_sustainable_traffic: 10_000,
    -            broke_my_site_traffic: Some(1_000_000),
    -            description: NAME.into(),
    -            publish_benchmarks: true,
    -        };
    -
    -        let updated_default_values = calculate(
    -            &(&update_pattern).into(),
    -            &data.settings.captcha.default_difficulty_strategy,
    -        )
    -        .unwrap();
    -
    -        let payload = UpdateTrafficPattern {
    -            pattern: update_pattern,
    -            key: token_key.key.clone(),
    -        };
    -
    -        let update_token_resp = test::call_service(
    -            &app,
    -            post_request!(&payload, ROUTES.captcha.easy.update)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(update_token_resp.status(), StatusCode::OK);
    -        assert!(data
    -            .db
    -            .analytics_captcha_is_published(&token_key.key)
    -            .await
    -            .unwrap());
    -
    -        let get_level_resp = test::call_service(
    -            &app,
    -            post_request!(&token_key, ROUTES.captcha.get)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(get_level_resp.status(), StatusCode::OK);
    -        let res_levels: Vec<Level> = test::read_body_json(get_level_resp).await;
    -        assert_ne!(res_levels, default_levels);
    -        assert_eq!(res_levels, updated_default_values);
    -        // END update_easy
    -
    -        // test easy edit page
    -        let easy_url = PAGES.panel.sitekey.get_edit_easy(&token_key.key);
    -
    -        let easy_edit_page = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(&easy_url)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(easy_edit_page.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(easy_edit_page).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -        assert!(body.contains(&token_key.name));
    -
    -        assert!(body.contains(
    -            &payload
    -                .pattern
    -                .broke_my_site_traffic
    -                .as_ref()
    -                .unwrap()
    -                .to_string()
    -        ));
    -        assert!(body.contains(&payload.pattern.avg_traffic.to_string()));
    -        assert!(body.contains(&payload.pattern.peak_sustainable_traffic.to_string()));
    -
    -        // START update_easy to delete published results
    -        let mut payload2 = TrafficPatternRequest {
    -            avg_traffic: 100_000,
    -            peak_sustainable_traffic: 1_000_000,
    -            broke_my_site_traffic: Some(10_000_000),
    -            description: NAME.into(),
    -            publish_benchmarks: true,
    -        };
    -
    -        let add_token_resp = test::call_service(
    -            &app,
    -            post_request!(&payload2, ROUTES.captcha.easy.create)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(add_token_resp.status(), StatusCode::OK);
    -
    -        assert!(data
    -            .db
    -            .analytics_captcha_is_published(&token_key.key)
    -            .await
    -            .unwrap());
    -
    -        let token_key2: MCaptchaDetails = test::read_body_json(add_token_resp).await;
    -
    -        payload2.publish_benchmarks = false;
    -
    -        let payload = UpdateTrafficPattern {
    -            pattern: payload2,
    -            key: token_key2.key.clone(),
    -        };
    -
    -        let update_token_resp = test::call_service(
    -            &app,
    -            post_request!(&payload, ROUTES.captcha.easy.update)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(update_token_resp.status(), StatusCode::OK);
    -        assert!(!data
    -            .db
    -            .analytics_captcha_is_published(&token_key2.key)
    -            .await
    -            .unwrap());
    -    }
    -}
    -
    \ No newline at end of file +easy.rs - source

    mcaptcha/api/v1/mcaptcha/
    easy.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use libmcaptcha::{defense::Level, defense::LevelBuilder};
    +9use serde::{Deserialize, Serialize};
    +10
    +11use db_core::TrafficPattern;
    +12
    +13use super::create::{runner::create as create_runner, CreateCaptcha};
    +14use super::update::{runner::update_captcha as update_captcha_runner, UpdateCaptcha};
    +15use crate::errors::*;
    +16use crate::settings::DefaultDifficultyStrategy;
    +17use crate::AppData;
    +18
    +19pub mod routes {
    +20    pub struct Easy {
    +21        /// easy is using defaults
    +22        pub create: &'static str,
    +23        pub update: &'static str,
    +24    }
    +25
    +26    impl Easy {
    +27        pub const fn new() -> Self {
    +28            Self {
    +29                create: "/api/v1/mcaptcha/add/easy",
    +30                update: "/api/v1/mcaptcha/update/easy",
    +31            }
    +32        }
    +33    }
    +34}
    +35
    +36pub fn services(cfg: &mut web::ServiceConfig) {
    +37    cfg.service(update);
    +38    cfg.service(create);
    +39}
    +40
    +41#[derive(Default, Serialize, Deserialize, Clone, Debug)]
    +42/// User's traffic pattern; used in generating a captcha configuration
    +43pub struct TrafficPatternRequest {
    +44    /// average traffic of user's website
    +45    pub avg_traffic: u32,
    +46    /// the peak traffic that the user's website can handle
    +47    pub peak_sustainable_traffic: u32,
    +48    /// traffic that bought the user's website down; optional
    +49    pub broke_my_site_traffic: Option<u32>,
    +50    /// Captcha description
    +51    pub description: String,
    +52
    +53    /// publish benchmarks
    +54    pub publish_benchmarks: bool,
    +55}
    +56
    +57impl From<&TrafficPatternRequest> for TrafficPattern {
    +58    fn from(t: &TrafficPatternRequest) -> Self {
    +59        TrafficPattern {
    +60            avg_traffic: t.avg_traffic,
    +61            peak_sustainable_traffic: t.peak_sustainable_traffic,
    +62            broke_my_site_traffic: t.broke_my_site_traffic,
    +63        }
    +64    }
    +65}
    +66
    +67pub fn calculate(
    +68    tp: &TrafficPattern,
    +69    strategy: &DefaultDifficultyStrategy,
    +70) -> ServiceResult<Vec<Level>> {
    +71    let mut levels = vec![
    +72        LevelBuilder::default()
    +73            .difficulty_factor(strategy.avg_traffic_difficulty)?
    +74            .visitor_threshold(tp.avg_traffic)
    +75            .build()?,
    +76        LevelBuilder::default()
    +77            .difficulty_factor(strategy.peak_sustainable_traffic_difficulty)?
    +78            .visitor_threshold(tp.peak_sustainable_traffic)
    +79            .build()?,
    +80    ];
    +81    let mut highest_level = LevelBuilder::default();
    +82    highest_level.difficulty_factor(strategy.broke_my_site_traffic_difficulty)?;
    +83
    +84    match tp.broke_my_site_traffic {
    +85        Some(broke_my_site_traffic) => {
    +86            highest_level.visitor_threshold(broke_my_site_traffic)
    +87        }
    +88        None => match tp
    +89            .peak_sustainable_traffic
    +90            .checked_add(tp.peak_sustainable_traffic / 2)
    +91        {
    +92            Some(num) => highest_level.visitor_threshold(num),
    +93            // TODO check for overflow: database saves these values as i32, so this u32 is cast
    +94            // into i32. Should choose bigger number or casts properly
    +95            None => highest_level.visitor_threshold(u32::MAX),
    +96        },
    +97    };
    +98
    +99    levels.push(highest_level.build()?);
    +100
    +101    Ok(levels)
    +102}
    +103
    +104async fn calculate_with_percentile(
    +105    data: &AppData,
    +106    tp: &TrafficPattern,
    +107) -> ServiceResult<Option<Vec<Level>>> {
    +108    use crate::api::v1::stats::{percentile_bench_runner, PercentileReq};
    +109
    +110    let strategy = &data.settings.captcha.default_difficulty_strategy;
    +111
    +112    if strategy.avg_traffic_time.is_none()
    +113        && strategy.peak_sustainable_traffic_time.is_none()
    +114        && strategy.broke_my_site_traffic_time.is_none()
    +115    {
    +116        return Ok(None);
    +117    }
    +118
    +119    let mut req = PercentileReq {
    +120        time: strategy.avg_traffic_time.unwrap(),
    +121        percentile: 90.00,
    +122    };
    +123    let resp = percentile_bench_runner(data, &req).await?;
    +124    if resp.difficulty_factor.is_none() {
    +125        return Ok(None);
    +126    }
    +127    let avg_traffic_difficulty = resp.difficulty_factor.unwrap();
    +128
    +129    req.time = strategy.peak_sustainable_traffic_time.unwrap();
    +130    let resp = percentile_bench_runner(data, &req).await?;
    +131    if resp.difficulty_factor.is_none() {
    +132        return Ok(None);
    +133    }
    +134    let peak_sustainable_traffic_difficulty = resp.difficulty_factor.unwrap();
    +135
    +136    req.time = strategy.broke_my_site_traffic_time.unwrap();
    +137    let resp = percentile_bench_runner(data, &req).await?;
    +138    let broke_my_site_traffic_difficulty = if resp.difficulty_factor.is_none() {
    +139        resp.difficulty_factor.unwrap()
    +140    } else {
    +141        peak_sustainable_traffic_difficulty * 2
    +142    };
    +143
    +144    let mut levels = vec![
    +145        LevelBuilder::default()
    +146            .difficulty_factor(avg_traffic_difficulty)?
    +147            .visitor_threshold(tp.avg_traffic)
    +148            .build()?,
    +149        LevelBuilder::default()
    +150            .difficulty_factor(peak_sustainable_traffic_difficulty)?
    +151            .visitor_threshold(tp.peak_sustainable_traffic)
    +152            .build()?,
    +153    ];
    +154    let mut highest_level = LevelBuilder::default();
    +155    highest_level.difficulty_factor(broke_my_site_traffic_difficulty)?;
    +156
    +157    match tp.broke_my_site_traffic {
    +158        Some(broke_my_site_traffic) => {
    +159            highest_level.visitor_threshold(broke_my_site_traffic)
    +160        }
    +161        None => match tp
    +162            .peak_sustainable_traffic
    +163            .checked_add(tp.peak_sustainable_traffic / 2)
    +164        {
    +165            Some(num) => highest_level.visitor_threshold(num),
    +166            // TODO check for overflow: database saves these values as i32, so this u32 is cast
    +167            // into i32. Should choose bigger number or casts properly
    +168            None => highest_level.visitor_threshold(u32::MAX),
    +169        },
    +170    };
    +171
    +172    levels.push(highest_level.build()?);
    +173
    +174    Ok(Some(levels))
    +175}
    +176
    +177#[my_codegen::post(
    +178    path = "crate::V1_API_ROUTES.captcha.easy.create",
    +179    wrap = "crate::api::v1::get_middleware()"
    +180)]
    +181async fn create(
    +182    payload: web::Json<TrafficPatternRequest>,
    +183    data: AppData,
    +184    id: Identity,
    +185) -> ServiceResult<impl Responder> {
    +186    let username = id.identity().unwrap();
    +187    let payload = payload.into_inner();
    +188    let pattern = (&payload).into();
    +189    let levels = if let Some(levels) = calculate_with_percentile(&data, &pattern).await?
    +190    {
    +191        levels
    +192    } else {
    +193        calculate(&pattern, &data.settings.captcha.default_difficulty_strategy)?
    +194    };
    +195    let msg = CreateCaptcha {
    +196        levels,
    +197        duration: data.settings.captcha.default_difficulty_strategy.duration,
    +198        description: payload.description,
    +199        publish_benchmarks: payload.publish_benchmarks,
    +200    };
    +201
    +202    let mcaptcha_config = create_runner(&msg, &data, &username).await?;
    +203    data.db
    +204        .add_traffic_pattern(&username, &mcaptcha_config.key, &pattern)
    +205        .await?;
    +206
    +207    Ok(HttpResponse::Ok().json(mcaptcha_config))
    +208}
    +209
    +210#[derive(Serialize, Deserialize, Clone, Debug)]
    +211pub struct UpdateTrafficPattern {
    +212    pub pattern: TrafficPatternRequest,
    +213    pub key: String,
    +214}
    +215
    +216#[my_codegen::post(
    +217    path = "crate::V1_API_ROUTES.captcha.easy.update",
    +218    wrap = "crate::api::v1::get_middleware()"
    +219)]
    +220async fn update(
    +221    payload: web::Json<UpdateTrafficPattern>,
    +222    data: AppData,
    +223    id: Identity,
    +224) -> ServiceResult<impl Responder> {
    +225    let username = id.identity().unwrap();
    +226    let payload = payload.into_inner();
    +227    update_runner(&data, payload, username).await?;
    +228    Ok(HttpResponse::Ok())
    +229}
    +230
    +231pub async fn update_runner(
    +232    data: &AppData,
    +233    payload: UpdateTrafficPattern,
    +234    username: String,
    +235) -> ServiceResult<()> {
    +236    let pattern = (&payload.pattern).into();
    +237    let levels =
    +238        calculate(&pattern, &data.settings.captcha.default_difficulty_strategy)?;
    +239
    +240    let msg = UpdateCaptcha {
    +241        levels,
    +242        duration: data.settings.captcha.default_difficulty_strategy.duration,
    +243        description: payload.pattern.description,
    +244        key: payload.key,
    +245        publish_benchmarks: payload.pattern.publish_benchmarks,
    +246    };
    +247
    +248    update_captcha_runner(&msg, &data, &username).await?;
    +249
    +250    data.db.delete_traffic_pattern(&username, &msg.key).await?;
    +251
    +252    data.db
    +253        .add_traffic_pattern(&username, &msg.key, &pattern)
    +254        .await?;
    +255
    +256    Ok(())
    +257}
    +258
    +259#[cfg(test)]
    +260pub mod tests {
    +261    use actix_web::http::StatusCode;
    +262    use actix_web::test;
    +263    use actix_web::web::Bytes;
    +264
    +265    use super::*;
    +266    use crate::api::v1::mcaptcha::create::MCaptchaDetails;
    +267    use crate::api::v1::ROUTES;
    +268    use crate::tests::*;
    +269    use crate::*;
    +270
    +271    mod isoloated_test {
    +272        use super::{calculate, LevelBuilder};
    +273
    +274        use db_core::TrafficPattern;
    +275
    +276        #[test]
    +277        fn easy_configuration_works() {
    +278            let settings = crate::tests::get_settings();
    +279
    +280            let mut payload = TrafficPattern {
    +281                avg_traffic: 100_000,
    +282                peak_sustainable_traffic: 1_000_000,
    +283                broke_my_site_traffic: Some(10_000_000),
    +284            };
    +285
    +286            let strategy = &settings.captcha.default_difficulty_strategy;
    +287            let l1 = LevelBuilder::default()
    +288                .difficulty_factor(strategy.avg_traffic_difficulty)
    +289                .unwrap()
    +290                .visitor_threshold(payload.avg_traffic)
    +291                .build()
    +292                .unwrap();
    +293
    +294            let l2 = LevelBuilder::default()
    +295                .difficulty_factor(strategy.peak_sustainable_traffic_difficulty)
    +296                .unwrap()
    +297                .visitor_threshold(payload.peak_sustainable_traffic)
    +298                .build()
    +299                .unwrap();
    +300            let l3 = LevelBuilder::default()
    +301                .difficulty_factor(strategy.broke_my_site_traffic_difficulty)
    +302                .unwrap()
    +303                .visitor_threshold(payload.broke_my_site_traffic.unwrap())
    +304                .build()
    +305                .unwrap();
    +306
    +307            let levels = vec![l1, l2, l3];
    +308            assert_eq!(calculate(&payload, strategy).unwrap(), levels);
    +309
    +310            let estimated_lmax = LevelBuilder::default()
    +311                .difficulty_factor(strategy.broke_my_site_traffic_difficulty)
    +312                .unwrap()
    +313                .visitor_threshold(1500000)
    +314                .build()
    +315                .unwrap();
    +316            payload.broke_my_site_traffic = None;
    +317            assert_eq!(
    +318                calculate(&payload, strategy).unwrap(),
    +319                vec![l1, l2, estimated_lmax]
    +320            );
    +321
    +322            let lmax = LevelBuilder::default()
    +323                .difficulty_factor(strategy.broke_my_site_traffic_difficulty)
    +324                .unwrap()
    +325                .visitor_threshold(u32::MAX)
    +326                .build()
    +327                .unwrap();
    +328
    +329            let very_large_l2_peak_traffic = u32::MAX - 1;
    +330            let very_large_l2 = LevelBuilder::default()
    +331                .difficulty_factor(strategy.peak_sustainable_traffic_difficulty)
    +332                .unwrap()
    +333                .visitor_threshold(very_large_l2_peak_traffic)
    +334                .build()
    +335                .unwrap();
    +336
    +337            //        payload.broke_my_site_traffic = Some(very_large_l2_peak_traffic);
    +338            payload.peak_sustainable_traffic = very_large_l2_peak_traffic;
    +339            assert_eq!(
    +340                calculate(&payload, strategy).unwrap(),
    +341                vec![l1, very_large_l2, lmax]
    +342            );
    +343        }
    +344    }
    +345
    +346    #[actix_rt::test]
    +347    async fn easy_works_pg() {
    +348        let data = crate::tests::pg::get_data().await;
    +349        easy_works(data).await;
    +350    }
    +351
    +352    #[actix_rt::test]
    +353    async fn easy_works_maria() {
    +354        let data = crate::tests::maria::get_data().await;
    +355        easy_works(data).await;
    +356    }
    +357
    +358    pub async fn easy_works(data: ArcData) {
    +359        const NAME: &str = "defaultuserconfgworks";
    +360        const PASSWORD: &str = "longpassworddomain";
    +361        const EMAIL: &str = "defaultuserconfgworks@a.com";
    +362        let data = &data;
    +363
    +364        delete_user(data, NAME).await;
    +365
    +366        let (_creds, signin_resp) =
    +367            register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +368        let cookies = get_cookie!(signin_resp);
    +369        let app = get_app!(data).await;
    +370
    +371        let payload = TrafficPatternRequest {
    +372            avg_traffic: 100_000,
    +373            peak_sustainable_traffic: 1_000_000,
    +374            broke_my_site_traffic: Some(10_000_000),
    +375            description: NAME.into(),
    +376            publish_benchmarks: false,
    +377        };
    +378
    +379        let default_levels = calculate(
    +380            &(&payload).into(),
    +381            &data.settings.captcha.default_difficulty_strategy,
    +382        )
    +383        .unwrap();
    +384
    +385        // START create_easy
    +386
    +387        let add_token_resp = test::call_service(
    +388            &app,
    +389            post_request!(&payload, ROUTES.captcha.easy.create)
    +390                .cookie(cookies.clone())
    +391                .to_request(),
    +392        )
    +393        .await;
    +394        assert_eq!(add_token_resp.status(), StatusCode::OK);
    +395        let token_key: MCaptchaDetails = test::read_body_json(add_token_resp).await;
    +396
    +397        let get_level_resp = test::call_service(
    +398            &app,
    +399            post_request!(&token_key, ROUTES.captcha.get)
    +400                .cookie(cookies.clone())
    +401                .to_request(),
    +402        )
    +403        .await;
    +404
    +405        assert_eq!(get_level_resp.status(), StatusCode::OK);
    +406        let res_levels: Vec<Level> = test::read_body_json(get_level_resp).await;
    +407        assert_eq!(res_levels, default_levels);
    +408        assert!(!data
    +409            .db
    +410            .analytics_captcha_is_published(&token_key.key)
    +411            .await
    +412            .unwrap());
    +413        // END create_easy
    +414
    +415        // START update_easy
    +416        let update_pattern = TrafficPatternRequest {
    +417            avg_traffic: 1_000,
    +418            peak_sustainable_traffic: 10_000,
    +419            broke_my_site_traffic: Some(1_000_000),
    +420            description: NAME.into(),
    +421            publish_benchmarks: true,
    +422        };
    +423
    +424        let updated_default_values = calculate(
    +425            &(&update_pattern).into(),
    +426            &data.settings.captcha.default_difficulty_strategy,
    +427        )
    +428        .unwrap();
    +429
    +430        let payload = UpdateTrafficPattern {
    +431            pattern: update_pattern,
    +432            key: token_key.key.clone(),
    +433        };
    +434
    +435        let update_token_resp = test::call_service(
    +436            &app,
    +437            post_request!(&payload, ROUTES.captcha.easy.update)
    +438                .cookie(cookies.clone())
    +439                .to_request(),
    +440        )
    +441        .await;
    +442        assert_eq!(update_token_resp.status(), StatusCode::OK);
    +443        assert!(data
    +444            .db
    +445            .analytics_captcha_is_published(&token_key.key)
    +446            .await
    +447            .unwrap());
    +448
    +449        let get_level_resp = test::call_service(
    +450            &app,
    +451            post_request!(&token_key, ROUTES.captcha.get)
    +452                .cookie(cookies.clone())
    +453                .to_request(),
    +454        )
    +455        .await;
    +456
    +457        assert_eq!(get_level_resp.status(), StatusCode::OK);
    +458        let res_levels: Vec<Level> = test::read_body_json(get_level_resp).await;
    +459        assert_ne!(res_levels, default_levels);
    +460        assert_eq!(res_levels, updated_default_values);
    +461        // END update_easy
    +462
    +463        // test easy edit page
    +464        let easy_url = PAGES.panel.sitekey.get_edit_easy(&token_key.key);
    +465
    +466        let easy_edit_page = test::call_service(
    +467            &app,
    +468            test::TestRequest::get()
    +469                .uri(&easy_url)
    +470                .cookie(cookies.clone())
    +471                .to_request(),
    +472        )
    +473        .await;
    +474        assert_eq!(easy_edit_page.status(), StatusCode::OK);
    +475
    +476        let body: Bytes = test::read_body(easy_edit_page).await;
    +477        let body = String::from_utf8(body.to_vec()).unwrap();
    +478        assert!(body.contains(&token_key.name));
    +479
    +480        assert!(body.contains(
    +481            &payload
    +482                .pattern
    +483                .broke_my_site_traffic
    +484                .as_ref()
    +485                .unwrap()
    +486                .to_string()
    +487        ));
    +488        assert!(body.contains(&payload.pattern.avg_traffic.to_string()));
    +489        assert!(body.contains(&payload.pattern.peak_sustainable_traffic.to_string()));
    +490
    +491        // START update_easy to delete published results
    +492        let mut payload2 = TrafficPatternRequest {
    +493            avg_traffic: 100_000,
    +494            peak_sustainable_traffic: 1_000_000,
    +495            broke_my_site_traffic: Some(10_000_000),
    +496            description: NAME.into(),
    +497            publish_benchmarks: true,
    +498        };
    +499
    +500        let add_token_resp = test::call_service(
    +501            &app,
    +502            post_request!(&payload2, ROUTES.captcha.easy.create)
    +503                .cookie(cookies.clone())
    +504                .to_request(),
    +505        )
    +506        .await;
    +507        assert_eq!(add_token_resp.status(), StatusCode::OK);
    +508
    +509        assert!(data
    +510            .db
    +511            .analytics_captcha_is_published(&token_key.key)
    +512            .await
    +513            .unwrap());
    +514
    +515        let token_key2: MCaptchaDetails = test::read_body_json(add_token_resp).await;
    +516
    +517        payload2.publish_benchmarks = false;
    +518
    +519        let payload = UpdateTrafficPattern {
    +520            pattern: payload2,
    +521            key: token_key2.key.clone(),
    +522        };
    +523
    +524        let update_token_resp = test::call_service(
    +525            &app,
    +526            post_request!(&payload, ROUTES.captcha.easy.update)
    +527                .cookie(cookies.clone())
    +528                .to_request(),
    +529        )
    +530        .await;
    +531        assert_eq!(update_token_resp.status(), StatusCode::OK);
    +532        assert!(!data
    +533            .db
    +534            .analytics_captcha_is_published(&token_key2.key)
    +535            .await
    +536            .unwrap());
    +537    }
    +538}
    \ 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 525277c3..8fc43105 100644 --- a/src/mcaptcha/api/v1/mcaptcha/get.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/get.rs.html @@ -1,85 +1,41 @@ -get.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -
    -use serde::{Deserialize, Serialize};
    -
    -use super::create::MCaptchaDetails;
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.get",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn get_captcha(
    -    payload: web::Json<MCaptchaDetails>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let levels = data
    -        .db
    -        .get_captcha_levels(Some(&username), &payload.key)
    -        .await?;
    -    Ok(HttpResponse::Ok().json(levels))
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct Levels {
    -    levels: I32Levels,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct I32Levels {
    -    pub difficulty_factor: i32,
    -    pub visitor_threshold: i32,
    -}
    -
    \ No newline at end of file +get.rs - source

    mcaptcha/api/v1/mcaptcha/
    get.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8
    +9use serde::{Deserialize, Serialize};
    +10
    +11use super::create::MCaptchaDetails;
    +12use crate::errors::*;
    +13use crate::AppData;
    +14
    +15#[my_codegen::post(
    +16    path = "crate::V1_API_ROUTES.captcha.get",
    +17    wrap = "crate::api::v1::get_middleware()"
    +18)]
    +19pub async fn get_captcha(
    +20    payload: web::Json<MCaptchaDetails>,
    +21    data: AppData,
    +22    id: Identity,
    +23) -> ServiceResult<impl Responder> {
    +24    let username = id.identity().unwrap();
    +25    let levels = data
    +26        .db
    +27        .get_captcha_levels(Some(&username), &payload.key)
    +28        .await?;
    +29    Ok(HttpResponse::Ok().json(levels))
    +30}
    +31
    +32#[derive(Clone, Debug, Deserialize, Serialize)]
    +33pub struct Levels {
    +34    levels: I32Levels,
    +35}
    +36
    +37#[derive(Clone, Debug, Deserialize, Serialize)]
    +38pub struct I32Levels {
    +39    pub difficulty_factor: i32,
    +40    pub visitor_threshold: i32,
    +41}
    \ 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 1c70cdfc..d989d819 100644 --- a/src/mcaptcha/api/v1/mcaptcha/mod.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/mod.rs.html @@ -1,135 +1,66 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -pub mod create;
    -pub mod delete;
    -pub mod easy;
    -pub mod get;
    -pub mod stats;
    -#[cfg(test)]
    -pub mod test;
    -pub mod update;
    -
    -pub fn get_random(len: usize) -> String {
    -    use std::iter;
    -
    -    use rand::{distributions::Alphanumeric, rngs::ThreadRng, thread_rng, Rng};
    -
    -    let mut rng: ThreadRng = thread_rng();
    -
    -    iter::repeat(())
    -        .map(|()| rng.sample(Alphanumeric))
    -        .map(char::from)
    -        .take(len)
    -        .collect::<String>()
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    easy::services(cfg);
    -    cfg.service(stats::get);
    -    cfg.service(create::create);
    -    cfg.service(get::get_captcha);
    -    cfg.service(update::update_key);
    -    cfg.service(update::update_captcha);
    -    cfg.service(delete::delete);
    -}
    -
    -pub mod routes {
    -    use super::easy::routes::Easy;
    -    use super::stats::routes::Stats;
    -
    -    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 easy: Easy,
    -        pub stats: Stats,
    -    }
    -
    -    impl Captcha {
    -        pub const fn new() -> Self {
    -            Self {
    -                create: "/api/v1/mcaptcha/create",
    -                update: "/api/v1/mcaptcha/update",
    -                get: "/api/v1/mcaptcha/get",
    -                update_key: "/api/v1/mcaptcha/update/key",
    -                delete: "/api/v1/mcaptcha/delete",
    -                easy: Easy::new(),
    -                stats: Stats::new(),
    -            }
    -        }
    -    }
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/api/v1/mcaptcha/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6pub mod create;
    +7pub mod delete;
    +8pub mod easy;
    +9pub mod get;
    +10pub mod stats;
    +11#[cfg(test)]
    +12pub mod test;
    +13pub mod update;
    +14
    +15pub fn get_random(len: usize) -> String {
    +16    use std::iter;
    +17
    +18    use rand::{distributions::Alphanumeric, rngs::ThreadRng, thread_rng, Rng};
    +19
    +20    let mut rng: ThreadRng = thread_rng();
    +21
    +22    iter::repeat(())
    +23        .map(|()| rng.sample(Alphanumeric))
    +24        .map(char::from)
    +25        .take(len)
    +26        .collect::<String>()
    +27}
    +28
    +29pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +30    easy::services(cfg);
    +31    cfg.service(stats::get);
    +32    cfg.service(create::create);
    +33    cfg.service(get::get_captcha);
    +34    cfg.service(update::update_key);
    +35    cfg.service(update::update_captcha);
    +36    cfg.service(delete::delete);
    +37}
    +38
    +39pub mod routes {
    +40    use super::easy::routes::Easy;
    +41    use super::stats::routes::Stats;
    +42
    +43    pub struct Captcha {
    +44        pub create: &'static str,
    +45        pub update: &'static str,
    +46        pub get: &'static str,
    +47        pub delete: &'static str,
    +48        pub update_key: &'static str,
    +49        pub easy: Easy,
    +50        pub stats: Stats,
    +51    }
    +52
    +53    impl Captcha {
    +54        pub const fn new() -> Self {
    +55            Self {
    +56                create: "/api/v1/mcaptcha/create",
    +57                update: "/api/v1/mcaptcha/update",
    +58                get: "/api/v1/mcaptcha/get",
    +59                update_key: "/api/v1/mcaptcha/update/key",
    +60                delete: "/api/v1/mcaptcha/delete",
    +61                easy: Easy::new(),
    +62                stats: Stats::new(),
    +63            }
    +64        }
    +65    }
    +66}
    \ 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 4a5d0fca..bff94ce5 100644 --- a/src/mcaptcha/api/v1/mcaptcha/stats.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/stats.rs.html @@ -1,89 +1,43 @@ -stats.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -pub mod routes {
    -    pub struct Stats {
    -        pub get: &'static str,
    -    }
    -
    -    impl Stats {
    -        pub const fn new() -> Self {
    -            Self {
    -                get: "/api/v1/mcaptcha/stats",
    -            }
    -        }
    -    }
    -}
    -#[derive(Debug, Clone, Deserialize, Serialize)]
    -pub struct StatsPayload {
    -    pub key: String,
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.stats.get",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn get(
    -    payload: web::Json<StatsPayload>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let stats = data.stats.fetch(&data, &username, &payload.key).await?;
    -    Ok(HttpResponse::Ok().json(&stats))
    -}
    -
    \ No newline at end of file +stats.rs - source

    mcaptcha/api/v1/mcaptcha/
    stats.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use serde::{Deserialize, Serialize};
    +9
    +10use crate::errors::*;
    +11use crate::AppData;
    +12
    +13pub mod routes {
    +14    pub struct Stats {
    +15        pub get: &'static str,
    +16    }
    +17
    +18    impl Stats {
    +19        pub const fn new() -> Self {
    +20            Self {
    +21                get: "/api/v1/mcaptcha/stats",
    +22            }
    +23        }
    +24    }
    +25}
    +26#[derive(Debug, Clone, Deserialize, Serialize)]
    +27pub struct StatsPayload {
    +28    pub key: String,
    +29}
    +30
    +31#[my_codegen::post(
    +32    path = "crate::V1_API_ROUTES.captcha.stats.get",
    +33    wrap = "crate::api::v1::get_middleware()"
    +34)]
    +35pub async fn get(
    +36    payload: web::Json<StatsPayload>,
    +37    data: AppData,
    +38    id: Identity,
    +39) -> ServiceResult<impl Responder> {
    +40    let username = id.identity().unwrap();
    +41    let stats = data.stats.fetch(&data, &username, &payload.key).await?;
    +42    Ok(HttpResponse::Ok().json(&stats))
    +43}
    \ 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 43bef032..4fa40055 100644 --- a/src/mcaptcha/api/v1/mcaptcha/update.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/update.rs.html @@ -1,437 +1,217 @@ -update.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use libmcaptcha::defense::Level;
    -use libmcaptcha::master::messages::RenameBuilder;
    -use serde::{Deserialize, Serialize};
    -
    -use db_core::errors::DBError;
    -use db_core::CreateCaptcha;
    -
    -use super::create::MCaptchaDetails;
    -use super::get_random;
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.update_key",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn update_key(
    -    payload: web::Json<MCaptchaDetails>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let mut key;
    -
    -    loop {
    -        key = get_random(32);
    -
    -        match data
    -            .db
    -            .update_captcha_key(&username, &payload.key, &key)
    -            .await
    -        {
    -            Ok(_) => break,
    -            Err(DBError::SecretTaken) => continue,
    -            Err(e) => return Err(e.into()),
    -        }
    -    }
    -
    -    let payload = payload.into_inner();
    -    let rename = RenameBuilder::default()
    -        .name(payload.key)
    -        .rename_to(key.clone())
    -        .build()
    -        .unwrap();
    -    data.captcha.rename(rename).await?;
    -
    -    let resp = MCaptchaDetails {
    -        key,
    -        name: payload.name,
    -    };
    -
    -    Ok(HttpResponse::Ok().json(resp))
    -}
    -
    -#[derive(Serialize, Deserialize)]
    -pub struct UpdateCaptcha {
    -    pub levels: Vec<Level>,
    -    pub duration: u32,
    -    pub description: String,
    -    pub key: String,
    -    pub publish_benchmarks: bool,
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.captcha.update",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn update_captcha(
    -    payload: web::Json<UpdateCaptcha>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    runner::update_captcha(&payload, &data, &username).await?;
    -    Ok(HttpResponse::Ok())
    -}
    -
    -pub mod runner {
    -    use libmcaptcha::{master::messages::RemoveCaptcha, DefenseBuilder};
    -
    -    use super::*;
    -
    -    pub async fn update_captcha(
    -        payload: &UpdateCaptcha,
    -        data: &AppData,
    -        username: &str,
    -    ) -> ServiceResult<()> {
    -        let mut defense = DefenseBuilder::default();
    -
    -        for level in payload.levels.iter() {
    -            defense.add_level(*level)?;
    -        }
    -
    -        // I feel this is necessary as both difficulty factor _and_ visitor threshold of a
    -        // level could change so doing this would not require us to send level_id to client
    -        // still, needs to be benchmarked
    -        defense.build()?;
    -
    -        data.db
    -            .delete_captcha_levels(username, &payload.key)
    -            .await?;
    -
    -        let m = CreateCaptcha {
    -            key: &payload.key,
    -            duration: payload.duration as i32,
    -            description: &payload.description,
    -        };
    -
    -        data.db.update_captcha_metadata(username, &m).await?;
    -
    -        data.db
    -            .add_captcha_levels(username, &payload.key, &payload.levels)
    -            .await?;
    -        if let Err(ServiceError::CaptchaError(e)) = data
    -            .captcha
    -            .remove(RemoveCaptcha(payload.key.clone()))
    -            .await
    -        {
    -            log::error!(
    -                "Deleting captcha key {} while updating it, error: {:?}",
    -                &payload.key,
    -                e
    -            );
    -        }
    -
    -        if payload.publish_benchmarks {
    -            data.db
    -                .analytics_create_psuedo_id_if_not_exists(&payload.key)
    -                .await?;
    -        } else {
    -            data.db
    -                .analytics_delete_all_records_for_campaign(&payload.key)
    -                .await?;
    -        }
    -        Ok(())
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use crate::api::v1::mcaptcha::create::MCaptchaDetails;
    -    use crate::api::v1::mcaptcha::stats::StatsPayload;
    -    use crate::api::v1::ROUTES;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn update_and_get_mcaptcha_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        update_and_get_mcaptcha_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn update_and_get_mcaptcha_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        update_and_get_mcaptcha_works(data).await;
    -    }
    -
    -    async fn update_and_get_mcaptcha_works(data: ArcData) {
    -        const NAME: &str = "updateusermcaptcha";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL: &str = "testupdateusermcaptcha@a.com";
    -        let data = &data;
    -        delete_user(data, NAME).await;
    -
    -        // 1. add mcaptcha token
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let app = get_app!(data).await;
    -
    -        // 2. update token key
    -        let update_token_resp = test::call_service(
    -            &app,
    -            post_request!(&token_key, ROUTES.captcha.update_key)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(update_token_resp.status(), StatusCode::OK);
    -        let updated_token: MCaptchaDetails =
    -            test::read_body_json(update_token_resp).await;
    -
    -        // get levels with updated key
    -        let get_token_resp = test::call_service(
    -            &app,
    -            post_request!(&updated_token, ROUTES.captcha.get)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        // if updated key doesn't exist in database, a non 200 result will bereturned
    -        assert_eq!(get_token_resp.status(), StatusCode::OK);
    -
    -        // get stats
    -        let paylod = StatsPayload { key: token_key.key };
    -        let get_statis_resp = test::call_service(
    -            &app,
    -            post_request!(&paylod, ROUTES.captcha.stats.get)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        // if updated key doesn't exist in database, a non 200 result will bereturned
    -        assert_eq!(get_statis_resp.status(), StatusCode::OK);
    -    }
    -}
    -
    \ No newline at end of file +update.rs - source

    mcaptcha/api/v1/mcaptcha/
    update.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use libmcaptcha::defense::Level;
    +9use libmcaptcha::master::messages::RenameBuilder;
    +10use serde::{Deserialize, Serialize};
    +11
    +12use db_core::errors::DBError;
    +13use db_core::CreateCaptcha;
    +14
    +15use super::create::MCaptchaDetails;
    +16use super::get_random;
    +17use crate::errors::*;
    +18use crate::AppData;
    +19
    +20#[my_codegen::post(
    +21    path = "crate::V1_API_ROUTES.captcha.update_key",
    +22    wrap = "crate::api::v1::get_middleware()"
    +23)]
    +24pub async fn update_key(
    +25    payload: web::Json<MCaptchaDetails>,
    +26    data: AppData,
    +27    id: Identity,
    +28) -> ServiceResult<impl Responder> {
    +29    let username = id.identity().unwrap();
    +30    let mut key;
    +31
    +32    loop {
    +33        key = get_random(32);
    +34
    +35        match data
    +36            .db
    +37            .update_captcha_key(&username, &payload.key, &key)
    +38            .await
    +39        {
    +40            Ok(_) => break,
    +41            Err(DBError::SecretTaken) => continue,
    +42            Err(e) => return Err(e.into()),
    +43        }
    +44    }
    +45
    +46    let payload = payload.into_inner();
    +47    let rename = RenameBuilder::default()
    +48        .name(payload.key)
    +49        .rename_to(key.clone())
    +50        .build()
    +51        .unwrap();
    +52    data.captcha.rename(rename).await?;
    +53
    +54    let resp = MCaptchaDetails {
    +55        key,
    +56        name: payload.name,
    +57    };
    +58
    +59    Ok(HttpResponse::Ok().json(resp))
    +60}
    +61
    +62#[derive(Serialize, Deserialize)]
    +63pub struct UpdateCaptcha {
    +64    pub levels: Vec<Level>,
    +65    pub duration: u32,
    +66    pub description: String,
    +67    pub key: String,
    +68    pub publish_benchmarks: bool,
    +69}
    +70
    +71#[my_codegen::post(
    +72    path = "crate::V1_API_ROUTES.captcha.update",
    +73    wrap = "crate::api::v1::get_middleware()"
    +74)]
    +75pub async fn update_captcha(
    +76    payload: web::Json<UpdateCaptcha>,
    +77    data: AppData,
    +78    id: Identity,
    +79) -> ServiceResult<impl Responder> {
    +80    let username = id.identity().unwrap();
    +81    runner::update_captcha(&payload, &data, &username).await?;
    +82    Ok(HttpResponse::Ok())
    +83}
    +84
    +85pub mod runner {
    +86    use libmcaptcha::{master::messages::RemoveCaptcha, DefenseBuilder};
    +87
    +88    use super::*;
    +89
    +90    pub async fn update_captcha(
    +91        payload: &UpdateCaptcha,
    +92        data: &AppData,
    +93        username: &str,
    +94    ) -> ServiceResult<()> {
    +95        let mut defense = DefenseBuilder::default();
    +96
    +97        for level in payload.levels.iter() {
    +98            defense.add_level(*level)?;
    +99        }
    +100
    +101        // I feel this is necessary as both difficulty factor _and_ visitor threshold of a
    +102        // level could change so doing this would not require us to send level_id to client
    +103        // still, needs to be benchmarked
    +104        defense.build()?;
    +105
    +106        data.db
    +107            .delete_captcha_levels(username, &payload.key)
    +108            .await?;
    +109
    +110        let m = CreateCaptcha {
    +111            key: &payload.key,
    +112            duration: payload.duration as i32,
    +113            description: &payload.description,
    +114        };
    +115
    +116        data.db.update_captcha_metadata(username, &m).await?;
    +117
    +118        data.db
    +119            .add_captcha_levels(username, &payload.key, &payload.levels)
    +120            .await?;
    +121        if let Err(ServiceError::CaptchaError(e)) = data
    +122            .captcha
    +123            .remove(RemoveCaptcha(payload.key.clone()))
    +124            .await
    +125        {
    +126            log::error!(
    +127                "Deleting captcha key {} while updating it, error: {:?}",
    +128                &payload.key,
    +129                e
    +130            );
    +131        }
    +132
    +133        if payload.publish_benchmarks {
    +134            data.db
    +135                .analytics_create_psuedo_id_if_not_exists(&payload.key)
    +136                .await?;
    +137        } else {
    +138            data.db
    +139                .analytics_delete_all_records_for_campaign(&payload.key)
    +140                .await?;
    +141        }
    +142        Ok(())
    +143    }
    +144}
    +145
    +146#[cfg(test)]
    +147mod tests {
    +148    use actix_web::http::StatusCode;
    +149    use actix_web::test;
    +150
    +151    use crate::api::v1::mcaptcha::create::MCaptchaDetails;
    +152    use crate::api::v1::mcaptcha::stats::StatsPayload;
    +153    use crate::api::v1::ROUTES;
    +154    use crate::tests::*;
    +155    use crate::*;
    +156
    +157    #[actix_rt::test]
    +158    async fn update_and_get_mcaptcha_works_pg() {
    +159        let data = crate::tests::pg::get_data().await;
    +160        update_and_get_mcaptcha_works(data).await;
    +161    }
    +162
    +163    #[actix_rt::test]
    +164    async fn update_and_get_mcaptcha_works_maria() {
    +165        let data = crate::tests::maria::get_data().await;
    +166        update_and_get_mcaptcha_works(data).await;
    +167    }
    +168
    +169    async fn update_and_get_mcaptcha_works(data: ArcData) {
    +170        const NAME: &str = "updateusermcaptcha";
    +171        const PASSWORD: &str = "longpassworddomain";
    +172        const EMAIL: &str = "testupdateusermcaptcha@a.com";
    +173        let data = &data;
    +174        delete_user(data, NAME).await;
    +175
    +176        // 1. add mcaptcha token
    +177        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +178        let (_, signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    +179        let cookies = get_cookie!(signin_resp);
    +180        let app = get_app!(data).await;
    +181
    +182        // 2. update token key
    +183        let update_token_resp = test::call_service(
    +184            &app,
    +185            post_request!(&token_key, ROUTES.captcha.update_key)
    +186                .cookie(cookies.clone())
    +187                .to_request(),
    +188        )
    +189        .await;
    +190        assert_eq!(update_token_resp.status(), StatusCode::OK);
    +191        let updated_token: MCaptchaDetails =
    +192            test::read_body_json(update_token_resp).await;
    +193
    +194        // get levels with updated key
    +195        let get_token_resp = test::call_service(
    +196            &app,
    +197            post_request!(&updated_token, ROUTES.captcha.get)
    +198                .cookie(cookies.clone())
    +199                .to_request(),
    +200        )
    +201        .await;
    +202        // if updated key doesn't exist in database, a non 200 result will bereturned
    +203        assert_eq!(get_token_resp.status(), StatusCode::OK);
    +204
    +205        // get stats
    +206        let paylod = StatsPayload { key: token_key.key };
    +207        let get_statis_resp = test::call_service(
    +208            &app,
    +209            post_request!(&paylod, ROUTES.captcha.stats.get)
    +210                .cookie(cookies.clone())
    +211                .to_request(),
    +212        )
    +213        .await;
    +214        // if updated key doesn't exist in database, a non 200 result will bereturned
    +215        assert_eq!(get_statis_resp.status(), StatusCode::OK);
    +216    }
    +217}
    \ 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 fbea7c34..bdb1b604 100644 --- a/src/mcaptcha/api/v1/meta.rs.html +++ b/src/mcaptcha/api/v1/meta.rs.html @@ -1,287 +1,142 @@ -meta.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::{web, HttpResponse, Responder};
    -use derive_builder::Builder;
    -use libmcaptcha::redis::{Redis, RedisConfig};
    -use serde::{Deserialize, Serialize};
    -
    -use crate::data::SystemGroup;
    -use crate::AppData;
    -use crate::{GIT_COMMIT_HASH, VERSION};
    -
    -#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    -pub struct BuildDetails {
    -    pub version: &'static str,
    -    pub git_commit_hash: &'static str,
    -}
    -
    -pub mod routes {
    -    pub struct Meta {
    -        pub build_details: &'static str,
    -        pub health: &'static str,
    -    }
    -
    -    impl Meta {
    -        pub const fn new() -> Self {
    -            Self {
    -                build_details: "/api/v1/meta/build",
    -                health: "/api/v1/meta/health",
    -            }
    -        }
    -    }
    -}
    -
    -/// emits build details of the bninary
    -#[my_codegen::get(path = "crate::V1_API_ROUTES.meta.build_details")]
    -async fn build_details() -> impl Responder {
    -    let build = BuildDetails {
    -        version: VERSION,
    -        git_commit_hash: GIT_COMMIT_HASH,
    -    };
    -    HttpResponse::Ok().json(build)
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    -/// Health check return datatype
    -pub struct Health {
    -    db: bool,
    -    #[serde(skip_serializing_if = "Self::is_redis")]
    -    redis: Option<bool>,
    -}
    -
    -impl Health {
    -    fn is_redis(redis: &Option<bool>) -> bool {
    -        redis.is_none()
    -    }
    -}
    -
    -/// checks all components of the system
    -#[my_codegen::get(path = "crate::V1_API_ROUTES.meta.health")]
    -async fn health(data: AppData) -> impl Responder {
    -    let mut resp_builder = HealthBuilder::default();
    -    resp_builder.redis(None);
    -
    -    resp_builder.db(data.db.ping().await);
    -
    -    if let SystemGroup::Redis(_) = data.captcha {
    -        if let Ok(r) = Redis::new(RedisConfig::Single(
    -            data.settings.redis.as_ref().unwrap().url.clone(),
    -        ))
    -        .await
    -        {
    -            let status = r.get_client().ping().await;
    -            resp_builder.redis = Some(Some(status));
    -        } else {
    -            resp_builder.redis = Some(Some(false));
    -        }
    -    };
    -
    -    HttpResponse::Ok().json(resp_builder.build().unwrap())
    -}
    -
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    cfg.service(build_details);
    -    cfg.service(health);
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::{http::StatusCode, test, App};
    -
    -    use super::*;
    -    use crate::api::v1::services;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn build_details_works() {
    -        let app = test::init_service(App::new().configure(services)).await;
    -
    -        let resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(V1_API_ROUTES.meta.build_details)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -    }
    -
    -    #[actix_rt::test]
    -    async fn health_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        health_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn health_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        health_works(data).await;
    -    }
    -
    -    pub async fn health_works(data: ArcData) {
    -        println!("{}", V1_API_ROUTES.meta.health);
    -        let data = &data;
    -        let app = get_app!(data).await;
    -
    -        let resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(V1_API_ROUTES.meta.health)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -
    -        let health_resp: Health = test::read_body_json(resp).await;
    -        assert!(health_resp.db);
    -        assert_eq!(health_resp.redis, Some(true));
    -    }
    -}
    -
    \ No newline at end of file +meta.rs - source

    mcaptcha/api/v1/
    meta.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::{web, HttpResponse, Responder};
    +7use derive_builder::Builder;
    +8use libmcaptcha::redis::{Redis, RedisConfig};
    +9use serde::{Deserialize, Serialize};
    +10
    +11use crate::data::SystemGroup;
    +12use crate::AppData;
    +13use crate::{GIT_COMMIT_HASH, VERSION};
    +14
    +15#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    +16pub struct BuildDetails {
    +17    pub version: &'static str,
    +18    pub git_commit_hash: &'static str,
    +19}
    +20
    +21pub mod routes {
    +22    pub struct Meta {
    +23        pub build_details: &'static str,
    +24        pub health: &'static str,
    +25    }
    +26
    +27    impl Meta {
    +28        pub const fn new() -> Self {
    +29            Self {
    +30                build_details: "/api/v1/meta/build",
    +31                health: "/api/v1/meta/health",
    +32            }
    +33        }
    +34    }
    +35}
    +36
    +37/// emits build details of the bninary
    +38#[my_codegen::get(path = "crate::V1_API_ROUTES.meta.build_details")]
    +39async fn build_details() -> impl Responder {
    +40    let build = BuildDetails {
    +41        version: VERSION,
    +42        git_commit_hash: GIT_COMMIT_HASH,
    +43    };
    +44    HttpResponse::Ok().json(build)
    +45}
    +46
    +47#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    +48/// Health check return datatype
    +49pub struct Health {
    +50    db: bool,
    +51    #[serde(skip_serializing_if = "Self::is_redis")]
    +52    redis: Option<bool>,
    +53}
    +54
    +55impl Health {
    +56    fn is_redis(redis: &Option<bool>) -> bool {
    +57        redis.is_none()
    +58    }
    +59}
    +60
    +61/// checks all components of the system
    +62#[my_codegen::get(path = "crate::V1_API_ROUTES.meta.health")]
    +63async fn health(data: AppData) -> impl Responder {
    +64    let mut resp_builder = HealthBuilder::default();
    +65    resp_builder.redis(None);
    +66
    +67    resp_builder.db(data.db.ping().await);
    +68
    +69    if let SystemGroup::Redis(_) = data.captcha {
    +70        if let Ok(r) = Redis::new(RedisConfig::Single(
    +71            data.settings.redis.as_ref().unwrap().url.clone(),
    +72        ))
    +73        .await
    +74        {
    +75            let status = r.get_client().ping().await;
    +76            resp_builder.redis = Some(Some(status));
    +77        } else {
    +78            resp_builder.redis = Some(Some(false));
    +79        }
    +80    };
    +81
    +82    HttpResponse::Ok().json(resp_builder.build().unwrap())
    +83}
    +84
    +85pub fn services(cfg: &mut web::ServiceConfig) {
    +86    cfg.service(build_details);
    +87    cfg.service(health);
    +88}
    +89
    +90#[cfg(test)]
    +91pub mod tests {
    +92    use actix_web::{http::StatusCode, test, App};
    +93
    +94    use super::*;
    +95    use crate::api::v1::services;
    +96    use crate::*;
    +97
    +98    #[actix_rt::test]
    +99    async fn build_details_works() {
    +100        let app = test::init_service(App::new().configure(services)).await;
    +101
    +102        let resp = test::call_service(
    +103            &app,
    +104            test::TestRequest::get()
    +105                .uri(V1_API_ROUTES.meta.build_details)
    +106                .to_request(),
    +107        )
    +108        .await;
    +109        assert_eq!(resp.status(), StatusCode::OK);
    +110    }
    +111
    +112    #[actix_rt::test]
    +113    async fn health_works_pg() {
    +114        let data = crate::tests::pg::get_data().await;
    +115        health_works(data).await;
    +116    }
    +117
    +118    #[actix_rt::test]
    +119    async fn health_works_maria() {
    +120        let data = crate::tests::maria::get_data().await;
    +121        health_works(data).await;
    +122    }
    +123
    +124    pub async fn health_works(data: ArcData) {
    +125        println!("{}", V1_API_ROUTES.meta.health);
    +126        let data = &data;
    +127        let app = get_app!(data).await;
    +128
    +129        let resp = test::call_service(
    +130            &app,
    +131            test::TestRequest::get()
    +132                .uri(V1_API_ROUTES.meta.health)
    +133                .to_request(),
    +134        )
    +135        .await;
    +136        assert_eq!(resp.status(), StatusCode::OK);
    +137
    +138        let health_resp: Health = test::read_body_json(resp).await;
    +139        assert!(health_resp.db);
    +140        assert_eq!(health_resp.redis, Some(true));
    +141    }
    +142}
    \ 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 3c34c67b..80fde71d 100644 --- a/src/mcaptcha/api/v1/mod.rs.html +++ b/src/mcaptcha/api/v1/mod.rs.html @@ -1,89 +1,43 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_auth_middleware::Authentication;
    -use actix_web::web::ServiceConfig;
    -use serde::Deserialize;
    -
    -pub mod account;
    -pub mod auth;
    -pub mod mcaptcha;
    -pub mod meta;
    -pub mod notifications;
    -pub mod pow;
    -mod routes;
    -pub mod stats;
    -pub mod survey;
    -
    -pub use routes::ROUTES;
    -
    -pub fn services(cfg: &mut ServiceConfig) {
    -    meta::services(cfg);
    -    pow::services(cfg);
    -    auth::services(cfg);
    -    account::services(cfg);
    -    mcaptcha::services(cfg);
    -    notifications::services(cfg);
    -    survey::services(cfg);
    -    stats::services(cfg);
    -}
    -
    -#[derive(Deserialize)]
    -pub struct RedirectQuery {
    -    pub redirect_to: Option<String>,
    -}
    -
    -pub fn get_middleware() -> Authentication<routes::Routes> {
    -    Authentication::with_identity(ROUTES)
    -}
    -
    -#[cfg(test)]
    -mod tests;
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/api/v1/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_auth_middleware::Authentication;
    +7use actix_web::web::ServiceConfig;
    +8use serde::Deserialize;
    +9
    +10pub mod account;
    +11pub mod auth;
    +12pub mod mcaptcha;
    +13pub mod meta;
    +14pub mod notifications;
    +15pub mod pow;
    +16mod routes;
    +17pub mod stats;
    +18pub mod survey;
    +19
    +20pub use routes::ROUTES;
    +21
    +22pub fn services(cfg: &mut ServiceConfig) {
    +23    meta::services(cfg);
    +24    pow::services(cfg);
    +25    auth::services(cfg);
    +26    account::services(cfg);
    +27    mcaptcha::services(cfg);
    +28    notifications::services(cfg);
    +29    survey::services(cfg);
    +30    stats::services(cfg);
    +31}
    +32
    +33#[derive(Deserialize)]
    +34pub struct RedirectQuery {
    +35    pub redirect_to: Option<String>,
    +36}
    +37
    +38pub fn get_middleware() -> Authentication<routes::Routes> {
    +39    Authentication::with_identity(ROUTES)
    +40}
    +41
    +42#[cfg(test)]
    +43mod 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 f2f6e911..4127067b 100644 --- a/src/mcaptcha/api/v1/notifications/add.rs.html +++ b/src/mcaptcha/api/v1/notifications/add.rs.html @@ -1,205 +1,101 @@ -add.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -use db_core::AddNotification;
    -
    -#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
    -pub struct AddNotificationRequest {
    -    pub to: String,
    -    pub heading: String,
    -    pub message: String,
    -}
    -
    -/// route handler that adds a notification message
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.notifications.add",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn add_notification(
    -    payload: web::Json<AddNotificationRequest>,
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let sender = id.identity().unwrap();
    -    // TODO handle error where payload.to doesn't exist
    -
    -    let p = AddNotification {
    -        from: &sender,
    -        to: &payload.to,
    -        message: &payload.message,
    -        heading: &payload.heading,
    -    };
    -
    -    data.db.create_notification(&p).await?;
    -
    -    Ok(HttpResponse::Ok())
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use super::*;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn notification_works_pg() {
    -        let data = pg::get_data().await;
    -        notification_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn notification_works_maria() {
    -        let data = maria::get_data().await;
    -        notification_works(data).await;
    -    }
    -
    -    pub async fn notification_works(data: ArcData) {
    -        const NAME1: &str = "notifuser1";
    -        const NAME2: &str = "notiuser2";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL1: &str = "testnotification1@a.com";
    -        const EMAIL2: &str = "testnotification2@a.com";
    -
    -        let data = &data;
    -
    -        delete_user(data, NAME1).await;
    -        delete_user(data, NAME2).await;
    -
    -        register_and_signin(data, NAME1, EMAIL1, PASSWORD).await;
    -        register_and_signin(data, NAME2, EMAIL2, PASSWORD).await;
    -        let (_creds, signin_resp) = signin(data, NAME1, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let app = get_app!(data).await;
    -
    -        let msg = AddNotificationRequest {
    -            to: NAME2.into(),
    -            heading: "Test notification".into(),
    -            message: "Testing notifications with a dummy message".into(),
    -        };
    -
    -        let send_notification_resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.notifications.add)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(send_notification_resp.status(), StatusCode::OK);
    -    }
    -}
    -
    \ No newline at end of file +add.rs - source

    mcaptcha/api/v1/notifications/
    add.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use serde::{Deserialize, Serialize};
    +9
    +10use crate::errors::*;
    +11use crate::AppData;
    +12
    +13use db_core::AddNotification;
    +14
    +15#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
    +16pub struct AddNotificationRequest {
    +17    pub to: String,
    +18    pub heading: String,
    +19    pub message: String,
    +20}
    +21
    +22/// route handler that adds a notification message
    +23#[my_codegen::post(
    +24    path = "crate::V1_API_ROUTES.notifications.add",
    +25    wrap = "crate::api::v1::get_middleware()"
    +26)]
    +27pub async fn add_notification(
    +28    payload: web::Json<AddNotificationRequest>,
    +29    data: AppData,
    +30    id: Identity,
    +31) -> ServiceResult<impl Responder> {
    +32    let sender = id.identity().unwrap();
    +33    // TODO handle error where payload.to doesn't exist
    +34
    +35    let p = AddNotification {
    +36        from: &sender,
    +37        to: &payload.to,
    +38        message: &payload.message,
    +39        heading: &payload.heading,
    +40    };
    +41
    +42    data.db.create_notification(&p).await?;
    +43
    +44    Ok(HttpResponse::Ok())
    +45}
    +46
    +47#[cfg(test)]
    +48pub mod tests {
    +49    use actix_web::http::StatusCode;
    +50    use actix_web::test;
    +51
    +52    use super::*;
    +53    use crate::tests::*;
    +54    use crate::*;
    +55
    +56    #[actix_rt::test]
    +57    async fn notification_works_pg() {
    +58        let data = pg::get_data().await;
    +59        notification_works(data).await;
    +60    }
    +61
    +62    #[actix_rt::test]
    +63    async fn notification_works_maria() {
    +64        let data = maria::get_data().await;
    +65        notification_works(data).await;
    +66    }
    +67
    +68    pub async fn notification_works(data: ArcData) {
    +69        const NAME1: &str = "notifuser1";
    +70        const NAME2: &str = "notiuser2";
    +71        const PASSWORD: &str = "longpassworddomain";
    +72        const EMAIL1: &str = "testnotification1@a.com";
    +73        const EMAIL2: &str = "testnotification2@a.com";
    +74
    +75        let data = &data;
    +76
    +77        delete_user(data, NAME1).await;
    +78        delete_user(data, NAME2).await;
    +79
    +80        register_and_signin(data, NAME1, EMAIL1, PASSWORD).await;
    +81        register_and_signin(data, NAME2, EMAIL2, PASSWORD).await;
    +82        let (_creds, signin_resp) = signin(data, NAME1, PASSWORD).await;
    +83        let cookies = get_cookie!(signin_resp);
    +84        let app = get_app!(data).await;
    +85
    +86        let msg = AddNotificationRequest {
    +87            to: NAME2.into(),
    +88            heading: "Test notification".into(),
    +89            message: "Testing notifications with a dummy message".into(),
    +90        };
    +91
    +92        let send_notification_resp = test::call_service(
    +93            &app,
    +94            post_request!(&msg, V1_API_ROUTES.notifications.add)
    +95                .cookie(cookies.clone())
    +96                .to_request(),
    +97        )
    +98        .await;
    +99        assert_eq!(send_notification_resp.status(), StatusCode::OK);
    +100    }
    +101}
    \ 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 843e8f96..d2d83242 100644 --- a/src/mcaptcha/api/v1/notifications/get.rs.html +++ b/src/mcaptcha/api/v1/notifications/get.rs.html @@ -1,287 +1,142 @@ -get.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{HttpResponse, Responder};
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -use db_core::Notification;
    -
    -#[derive(Default, PartialEq, Clone, Deserialize, Serialize)]
    -pub struct NotificationResp {
    -    pub name: String,
    -    pub heading: String,
    -    pub message: String,
    -    pub received: i64,
    -    pub id: i32,
    -}
    -
    -impl From<Notification> for NotificationResp {
    -    fn from(n: Notification) -> Self {
    -        NotificationResp {
    -            name: n.name.unwrap(),
    -            heading: n.heading.unwrap(),
    -            received: n.received.unwrap(),
    -            id: n.id.unwrap(),
    -            message: n.message.unwrap(),
    -        }
    -    }
    -}
    -
    -impl NotificationResp {
    -    pub fn from_notifications(mut n: Vec<Notification>) -> Vec<Self> {
    -        let mut notifications = Vec::with_capacity(n.len());
    -
    -        n.drain(0..).for_each(|x| {
    -            let y: NotificationResp = x.into();
    -            notifications.push(y)
    -        });
    -
    -        notifications
    -    }
    -}
    -
    -/// route handler that gets all unread notifications
    -#[my_codegen::get(
    -    path = "crate::V1_API_ROUTES.notifications.get",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn get_notification(
    -    data: AppData,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let receiver = id.identity().unwrap();
    -    // TODO handle error where payload.to doesn't exist
    -
    -    let notifications = data.db.get_all_unread_notifications(&receiver).await?;
    -    let notifications = NotificationResp::from_notifications(notifications);
    -    Ok(HttpResponse::Ok().json(notifications))
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use super::*;
    -    use crate::api::v1::notifications::add::AddNotificationRequest;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn notification_get_works_pg() {
    -        let data = pg::get_data().await;
    -        notification_get_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn notification_get_works_maria() {
    -        let data = maria::get_data().await;
    -        notification_get_works(data).await;
    -    }
    -
    -    pub async fn notification_get_works(data: ArcData) {
    -        const NAME1: &str = "notifuser12";
    -        const NAME2: &str = "notiuser22";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL1: &str = "testnotification12@a.com";
    -        const EMAIL2: &str = "testnotification22@a.com";
    -        const HEADING: &str = "testing notifications get";
    -        const MESSAGE: &str = "testing notifications get message";
    -
    -        let data = &data;
    -
    -        delete_user(data, NAME1).await;
    -        delete_user(data, NAME2).await;
    -
    -        register_and_signin(data, NAME1, EMAIL1, PASSWORD).await;
    -        register_and_signin(data, NAME2, EMAIL2, PASSWORD).await;
    -        let (_creds, signin_resp) = signin(data, NAME1, PASSWORD).await;
    -        let (_creds2, signin_resp2) = signin(data, NAME2, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let cookies2 = get_cookie!(signin_resp2);
    -        let app = get_app!(data).await;
    -
    -        let msg = AddNotificationRequest {
    -            to: NAME2.into(),
    -            heading: HEADING.into(),
    -            message: MESSAGE.into(),
    -        };
    -
    -        let send_notification_resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.notifications.add)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(send_notification_resp.status(), StatusCode::OK);
    -
    -        let get_notifications_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(V1_API_ROUTES.notifications.get)
    -                .cookie(cookies2.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(get_notifications_resp.status(), StatusCode::OK);
    -
    -        let mut notifications: Vec<NotificationResp> =
    -            test::read_body_json(get_notifications_resp).await;
    -        let notification = notifications.pop().unwrap();
    -        assert_eq!(notification.name, NAME1);
    -        assert_eq!(notification.message, MESSAGE);
    -        assert_eq!(notification.heading, HEADING);
    -    }
    -}
    -
    \ No newline at end of file +get.rs - source

    mcaptcha/api/v1/notifications/
    get.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{HttpResponse, Responder};
    +8use serde::{Deserialize, Serialize};
    +9
    +10use crate::errors::*;
    +11use crate::AppData;
    +12
    +13use db_core::Notification;
    +14
    +15#[derive(Default, PartialEq, Clone, Deserialize, Serialize)]
    +16pub struct NotificationResp {
    +17    pub name: String,
    +18    pub heading: String,
    +19    pub message: String,
    +20    pub received: i64,
    +21    pub id: i32,
    +22}
    +23
    +24impl From<Notification> for NotificationResp {
    +25    fn from(n: Notification) -> Self {
    +26        NotificationResp {
    +27            name: n.name.unwrap(),
    +28            heading: n.heading.unwrap(),
    +29            received: n.received.unwrap(),
    +30            id: n.id.unwrap(),
    +31            message: n.message.unwrap(),
    +32        }
    +33    }
    +34}
    +35
    +36impl NotificationResp {
    +37    pub fn from_notifications(mut n: Vec<Notification>) -> Vec<Self> {
    +38        let mut notifications = Vec::with_capacity(n.len());
    +39
    +40        n.drain(0..).for_each(|x| {
    +41            let y: NotificationResp = x.into();
    +42            notifications.push(y)
    +43        });
    +44
    +45        notifications
    +46    }
    +47}
    +48
    +49/// route handler that gets all unread notifications
    +50#[my_codegen::get(
    +51    path = "crate::V1_API_ROUTES.notifications.get",
    +52    wrap = "crate::api::v1::get_middleware()"
    +53)]
    +54pub async fn get_notification(
    +55    data: AppData,
    +56    id: Identity,
    +57) -> ServiceResult<impl Responder> {
    +58    let receiver = id.identity().unwrap();
    +59    // TODO handle error where payload.to doesn't exist
    +60
    +61    let notifications = data.db.get_all_unread_notifications(&receiver).await?;
    +62    let notifications = NotificationResp::from_notifications(notifications);
    +63    Ok(HttpResponse::Ok().json(notifications))
    +64}
    +65
    +66#[cfg(test)]
    +67pub mod tests {
    +68    use actix_web::http::StatusCode;
    +69    use actix_web::test;
    +70
    +71    use super::*;
    +72    use crate::api::v1::notifications::add::AddNotificationRequest;
    +73    use crate::tests::*;
    +74    use crate::*;
    +75
    +76    #[actix_rt::test]
    +77    async fn notification_get_works_pg() {
    +78        let data = pg::get_data().await;
    +79        notification_get_works(data).await;
    +80    }
    +81
    +82    #[actix_rt::test]
    +83    async fn notification_get_works_maria() {
    +84        let data = maria::get_data().await;
    +85        notification_get_works(data).await;
    +86    }
    +87
    +88    pub async fn notification_get_works(data: ArcData) {
    +89        const NAME1: &str = "notifuser12";
    +90        const NAME2: &str = "notiuser22";
    +91        const PASSWORD: &str = "longpassworddomain";
    +92        const EMAIL1: &str = "testnotification12@a.com";
    +93        const EMAIL2: &str = "testnotification22@a.com";
    +94        const HEADING: &str = "testing notifications get";
    +95        const MESSAGE: &str = "testing notifications get message";
    +96
    +97        let data = &data;
    +98
    +99        delete_user(data, NAME1).await;
    +100        delete_user(data, NAME2).await;
    +101
    +102        register_and_signin(data, NAME1, EMAIL1, PASSWORD).await;
    +103        register_and_signin(data, NAME2, EMAIL2, PASSWORD).await;
    +104        let (_creds, signin_resp) = signin(data, NAME1, PASSWORD).await;
    +105        let (_creds2, signin_resp2) = signin(data, NAME2, PASSWORD).await;
    +106        let cookies = get_cookie!(signin_resp);
    +107        let cookies2 = get_cookie!(signin_resp2);
    +108        let app = get_app!(data).await;
    +109
    +110        let msg = AddNotificationRequest {
    +111            to: NAME2.into(),
    +112            heading: HEADING.into(),
    +113            message: MESSAGE.into(),
    +114        };
    +115
    +116        let send_notification_resp = test::call_service(
    +117            &app,
    +118            post_request!(&msg, V1_API_ROUTES.notifications.add)
    +119                .cookie(cookies.clone())
    +120                .to_request(),
    +121        )
    +122        .await;
    +123        assert_eq!(send_notification_resp.status(), StatusCode::OK);
    +124
    +125        let get_notifications_resp = test::call_service(
    +126            &app,
    +127            test::TestRequest::get()
    +128                .uri(V1_API_ROUTES.notifications.get)
    +129                .cookie(cookies2.clone())
    +130                .to_request(),
    +131        )
    +132        .await;
    +133        assert_eq!(get_notifications_resp.status(), StatusCode::OK);
    +134
    +135        let mut notifications: Vec<NotificationResp> =
    +136            test::read_body_json(get_notifications_resp).await;
    +137        let notification = notifications.pop().unwrap();
    +138        assert_eq!(notification.name, NAME1);
    +139        assert_eq!(notification.message, MESSAGE);
    +140        assert_eq!(notification.heading, HEADING);
    +141    }
    +142}
    \ 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 c6dabc9d..5f60b538 100644 --- a/src/mcaptcha/api/v1/notifications/mark_read.rs.html +++ b/src/mcaptcha/api/v1/notifications/mark_read.rs.html @@ -1,283 +1,140 @@ -mark_read.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[derive(Deserialize, Serialize)]
    -pub struct MarkReadReq {
    -    pub id: i32,
    -}
    -
    -/// route handler that marks a notification read
    -#[my_codegen::post(
    -    path = "crate::V1_API_ROUTES.notifications.mark_read",
    -    wrap = "crate::api::v1::get_middleware()"
    -)]
    -pub async fn mark_read(
    -    data: AppData,
    -    payload: web::Json<MarkReadReq>,
    -    id: Identity,
    -) -> ServiceResult<impl Responder> {
    -    let receiver = id.identity().unwrap();
    -    // TODO handle error where payload.to doesn't exist
    -
    -    // TODO get payload from path /api/v1/notifications/{id}/read"
    -    data.db
    -        .mark_notification_read(&receiver, payload.id)
    -        .await?;
    -
    -    Ok(HttpResponse::Ok())
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use super::*;
    -    use crate::api::v1::notifications::add::AddNotificationRequest;
    -    use crate::api::v1::notifications::get::NotificationResp;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn notification_mark_read_works_pg() {
    -        let data = pg::get_data().await;
    -        notification_mark_read_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn notification_mark_read_works_maria() {
    -        let data = maria::get_data().await;
    -        notification_mark_read_works(data).await;
    -    }
    -
    -    pub async fn notification_mark_read_works(data: ArcData) {
    -        const NAME1: &str = "notifuser122";
    -        const NAME2: &str = "notiuser222";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL1: &str = "testnotification122@a.com";
    -        const EMAIL2: &str = "testnotification222@a.com";
    -        const HEADING: &str = "testing notifications get";
    -        const MESSAGE: &str = "testing notifications get message";
    -        let data = &data;
    -
    -        delete_user(data, NAME1).await;
    -        delete_user(data, NAME2).await;
    -
    -        register_and_signin(data, NAME1, EMAIL1, PASSWORD).await;
    -        register_and_signin(data, NAME2, EMAIL2, PASSWORD).await;
    -        let (_creds, signin_resp) = signin(data, NAME1, PASSWORD).await;
    -        let (_creds2, signin_resp2) = signin(data, NAME2, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let cookies2 = get_cookie!(signin_resp2);
    -        let app = get_app!(data).await;
    -
    -        let msg = AddNotificationRequest {
    -            to: NAME2.into(),
    -            heading: HEADING.into(),
    -            message: MESSAGE.into(),
    -        };
    -
    -        let send_notification_resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.notifications.add)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(send_notification_resp.status(), StatusCode::OK);
    -
    -        let get_notifications_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(V1_API_ROUTES.notifications.get)
    -                .cookie(cookies2.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(get_notifications_resp.status(), StatusCode::OK);
    -
    -        let mut notifications: Vec<NotificationResp> =
    -            test::read_body_json(get_notifications_resp).await;
    -        let notification = notifications.pop().unwrap();
    -        assert_eq!(notification.name, NAME1);
    -        assert_eq!(notification.message, MESSAGE);
    -        assert_eq!(notification.heading, HEADING);
    -
    -        let mark_read_payload = MarkReadReq {
    -            id: notification.id,
    -        };
    -        let mark_read_resp = test::call_service(
    -            &app,
    -            post_request!(&mark_read_payload, V1_API_ROUTES.notifications.mark_read)
    -                .cookie(cookies2.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(mark_read_resp.status(), StatusCode::OK);
    -
    -        let get_notifications_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(V1_API_ROUTES.notifications.get)
    -                .cookie(cookies2.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(get_notifications_resp.status(), StatusCode::OK);
    -        let mut notifications: Vec<NotificationResp> =
    -            test::read_body_json(get_notifications_resp).await;
    -        assert!(notifications.pop().is_none());
    -    }
    -}
    -
    \ No newline at end of file +mark_read.rs - source

    mcaptcha/api/v1/notifications/
    mark_read.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use serde::{Deserialize, Serialize};
    +9
    +10use crate::errors::*;
    +11use crate::AppData;
    +12
    +13#[derive(Deserialize, Serialize)]
    +14pub struct MarkReadReq {
    +15    pub id: i32,
    +16}
    +17
    +18/// route handler that marks a notification read
    +19#[my_codegen::post(
    +20    path = "crate::V1_API_ROUTES.notifications.mark_read",
    +21    wrap = "crate::api::v1::get_middleware()"
    +22)]
    +23pub async fn mark_read(
    +24    data: AppData,
    +25    payload: web::Json<MarkReadReq>,
    +26    id: Identity,
    +27) -> ServiceResult<impl Responder> {
    +28    let receiver = id.identity().unwrap();
    +29    // TODO handle error where payload.to doesn't exist
    +30
    +31    // TODO get payload from path /api/v1/notifications/{id}/read"
    +32    data.db
    +33        .mark_notification_read(&receiver, payload.id)
    +34        .await?;
    +35
    +36    Ok(HttpResponse::Ok())
    +37}
    +38
    +39#[cfg(test)]
    +40pub mod tests {
    +41    use actix_web::http::StatusCode;
    +42    use actix_web::test;
    +43
    +44    use super::*;
    +45    use crate::api::v1::notifications::add::AddNotificationRequest;
    +46    use crate::api::v1::notifications::get::NotificationResp;
    +47    use crate::tests::*;
    +48    use crate::*;
    +49
    +50    #[actix_rt::test]
    +51    async fn notification_mark_read_works_pg() {
    +52        let data = pg::get_data().await;
    +53        notification_mark_read_works(data).await;
    +54    }
    +55
    +56    #[actix_rt::test]
    +57    async fn notification_mark_read_works_maria() {
    +58        let data = maria::get_data().await;
    +59        notification_mark_read_works(data).await;
    +60    }
    +61
    +62    pub async fn notification_mark_read_works(data: ArcData) {
    +63        const NAME1: &str = "notifuser122";
    +64        const NAME2: &str = "notiuser222";
    +65        const PASSWORD: &str = "longpassworddomain";
    +66        const EMAIL1: &str = "testnotification122@a.com";
    +67        const EMAIL2: &str = "testnotification222@a.com";
    +68        const HEADING: &str = "testing notifications get";
    +69        const MESSAGE: &str = "testing notifications get message";
    +70        let data = &data;
    +71
    +72        delete_user(data, NAME1).await;
    +73        delete_user(data, NAME2).await;
    +74
    +75        register_and_signin(data, NAME1, EMAIL1, PASSWORD).await;
    +76        register_and_signin(data, NAME2, EMAIL2, PASSWORD).await;
    +77        let (_creds, signin_resp) = signin(data, NAME1, PASSWORD).await;
    +78        let (_creds2, signin_resp2) = signin(data, NAME2, PASSWORD).await;
    +79        let cookies = get_cookie!(signin_resp);
    +80        let cookies2 = get_cookie!(signin_resp2);
    +81        let app = get_app!(data).await;
    +82
    +83        let msg = AddNotificationRequest {
    +84            to: NAME2.into(),
    +85            heading: HEADING.into(),
    +86            message: MESSAGE.into(),
    +87        };
    +88
    +89        let send_notification_resp = test::call_service(
    +90            &app,
    +91            post_request!(&msg, V1_API_ROUTES.notifications.add)
    +92                .cookie(cookies.clone())
    +93                .to_request(),
    +94        )
    +95        .await;
    +96        assert_eq!(send_notification_resp.status(), StatusCode::OK);
    +97
    +98        let get_notifications_resp = test::call_service(
    +99            &app,
    +100            test::TestRequest::get()
    +101                .uri(V1_API_ROUTES.notifications.get)
    +102                .cookie(cookies2.clone())
    +103                .to_request(),
    +104        )
    +105        .await;
    +106        assert_eq!(get_notifications_resp.status(), StatusCode::OK);
    +107
    +108        let mut notifications: Vec<NotificationResp> =
    +109            test::read_body_json(get_notifications_resp).await;
    +110        let notification = notifications.pop().unwrap();
    +111        assert_eq!(notification.name, NAME1);
    +112        assert_eq!(notification.message, MESSAGE);
    +113        assert_eq!(notification.heading, HEADING);
    +114
    +115        let mark_read_payload = MarkReadReq {
    +116            id: notification.id,
    +117        };
    +118        let mark_read_resp = test::call_service(
    +119            &app,
    +120            post_request!(&mark_read_payload, V1_API_ROUTES.notifications.mark_read)
    +121                .cookie(cookies2.clone())
    +122                .to_request(),
    +123        )
    +124        .await;
    +125        assert_eq!(mark_read_resp.status(), StatusCode::OK);
    +126
    +127        let get_notifications_resp = test::call_service(
    +128            &app,
    +129            test::TestRequest::get()
    +130                .uri(V1_API_ROUTES.notifications.get)
    +131                .cookie(cookies2.clone())
    +132                .to_request(),
    +133        )
    +134        .await;
    +135        assert_eq!(get_notifications_resp.status(), StatusCode::OK);
    +136        let mut notifications: Vec<NotificationResp> =
    +137            test::read_body_json(get_notifications_resp).await;
    +138        assert!(notifications.pop().is_none());
    +139    }
    +140}
    \ 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 db8870ff..780f4ebc 100644 --- a/src/mcaptcha/api/v1/notifications/mod.rs.html +++ b/src/mcaptcha/api/v1/notifications/mod.rs.html @@ -1,69 +1,33 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -pub mod add;
    -pub mod get;
    -pub mod mark_read;
    -
    -pub mod routes {
    -
    -    pub struct Notifications {
    -        pub add: &'static str,
    -        pub mark_read: &'static str,
    -        pub get: &'static str,
    -    }
    -
    -    impl Notifications {
    -        pub const fn new() -> Notifications {
    -            Notifications {
    -                add: "/api/v1/notifications/add",
    -                mark_read: "/api/v1/notifications/read",
    -                get: "/api/v1/notifications/get",
    -            }
    -        }
    -    }
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(add::add_notification);
    -    cfg.service(get::get_notification);
    -    cfg.service(mark_read::mark_read);
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/api/v1/notifications/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6pub mod add;
    +7pub mod get;
    +8pub mod mark_read;
    +9
    +10pub mod routes {
    +11
    +12    pub struct Notifications {
    +13        pub add: &'static str,
    +14        pub mark_read: &'static str,
    +15        pub get: &'static str,
    +16    }
    +17
    +18    impl Notifications {
    +19        pub const fn new() -> Notifications {
    +20            Notifications {
    +21                add: "/api/v1/notifications/add",
    +22                mark_read: "/api/v1/notifications/read",
    +23                get: "/api/v1/notifications/get",
    +24            }
    +25        }
    +26    }
    +27}
    +28
    +29pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +30    cfg.service(add::add_notification);
    +31    cfg.service(get::get_notification);
    +32    cfg.service(mark_read::mark_read);
    +33}
    \ 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 4abef38a..1ddcbafe 100644 --- a/src/mcaptcha/api/v1/pow/get_config.rs.html +++ b/src/mcaptcha/api/v1/pow/get_config.rs.html @@ -1,565 +1,281 @@ -get_config.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//use actix::prelude::*;
    -use actix_web::{web, HttpResponse, Responder};
    -use libmcaptcha::pow::PoWConfig;
    -use libmcaptcha::{
    -    defense::LevelBuilder, master::messages::AddSiteBuilder, DefenseBuilder,
    -    MCaptchaBuilder,
    -};
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -//use crate::stats::record::record_fetch;
    -use crate::AppData;
    -use crate::V1_API_ROUTES;
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct GetConfigPayload {
    -    pub key: String,
    -}
    -
    -#[derive(Clone, Serialize, Deserialize, Debug)]
    -pub struct ApiPoWConfig {
    -    pub string: String,
    -    pub difficulty_factor: u32,
    -    pub salt: String,
    -    pub max_recorded_nonce: u32,
    -}
    -
    -/// get PoW configuration for an mcaptcha key
    -#[my_codegen::post(path = "V1_API_ROUTES.pow.get_config()")]
    -pub async fn get_config(
    -    payload: web::Json<GetConfigPayload>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    //if res.exists.is_none() {
    -    if !data.db.captcha_exists(None, &payload.key).await? {
    -        return Err(ServiceError::TokenNotFound);
    -    }
    -    let payload = payload.into_inner();
    -
    -    let config: ServiceResult<PoWConfig> =
    -        match data.captcha.get_pow(payload.key.clone()).await {
    -            Ok(Some(config)) => Ok(config),
    -            Ok(None) => {
    -                init_mcaptcha(&data, &payload.key).await?;
    -                let config = data
    -                    .captcha
    -                    .get_pow(payload.key.clone())
    -                    .await
    -                    .expect("mcaptcha should be initialized and ready to go");
    -                Ok(config.unwrap())
    -            }
    -            Err(e) => Err(e.into()),
    -        };
    -    let config = config?;
    -    let max_nonce = data
    -        .db
    -        .get_max_nonce_for_level(&payload.key, config.difficulty_factor)
    -        .await?;
    -    data.stats.record_fetch(&data, &payload.key).await?;
    -
    -    let config = ApiPoWConfig {
    -        string: config.string,
    -        difficulty_factor: config.difficulty_factor,
    -        salt: config.salt,
    -        max_recorded_nonce: max_nonce,
    -    };
    -    Ok(HttpResponse::Ok().json(config))
    -}
    -/// 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]
    -pub async fn init_mcaptcha(data: &AppData, key: &str) -> ServiceResult<()> {
    -    println!("Initializing captcha");
    -    // get levels
    -    let levels = data.db.get_captcha_levels(None, key).await?;
    -    let duration = data.db.get_captcha_cooldown(key).await?;
    -
    -    // build defense
    -    let mut defense = DefenseBuilder::default();
    -
    -    for level in levels.iter() {
    -        let level = LevelBuilder::default()
    -            .visitor_threshold(level.visitor_threshold)
    -            .difficulty_factor(level.difficulty_factor)
    -            .unwrap()
    -            .build()
    -            .unwrap();
    -        defense.add_level(level).unwrap();
    -    }
    -
    -    let defense = defense.build()?;
    -    println!("{:?}", defense);
    -
    -    // create captcha
    -    let mcaptcha = MCaptchaBuilder::default()
    -        .defense(defense)
    -        // leaky bucket algorithm's emission interval
    -        .duration(duration as u64)
    -        //   .cache(cache)
    -        .build()
    -        .unwrap();
    -
    -    // add captcha to master
    -    let msg = AddSiteBuilder::default()
    -        .id(key.into())
    -        .mcaptcha(mcaptcha)
    -        .build()
    -        .unwrap();
    -
    -    data.captcha.add_site(msg).await?;
    -
    -    Ok(())
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use crate::*;
    -    use libmcaptcha::pow::PoWConfig;
    -
    -    #[actix_rt::test]
    -    async fn get_pow_config_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        get_pow_config_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn get_pow_config_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        get_pow_config_works(data).await;
    -    }
    -
    -    pub async fn get_pow_config_works(data: ArcData) {
    -        use super::*;
    -        use crate::tests::*;
    -        use crate::*;
    -        use actix_web::test;
    -
    -        const NAME: &str = "powusrworks";
    -        const PASSWORD: &str = "testingpas";
    -        const EMAIL: &str = "randomuser@a.com";
    -
    -        let data = &data;
    -
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, _signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let app = get_app!(data).await;
    -
    -        let get_config_payload = GetConfigPayload {
    -            key: token_key.key.clone(),
    -        };
    -
    -        // update and check changes
    -
    -        let url = V1_API_ROUTES.pow.get_config;
    -        println!("{}", &url);
    -        let get_config_resp = test::call_service(
    -            &app,
    -            post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(get_config_resp.status(), StatusCode::OK);
    -        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    -        assert_eq!(config.difficulty_factor, L1.difficulty_factor);
    -    }
    -
    -    #[actix_rt::test]
    -    async fn pow_difficulty_factor_increases_on_visitor_count_increase_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        pow_difficulty_factor_increases_on_visitor_count_increase(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn pow_difficulty_factor_increases_on_visitor_count_increase_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        pow_difficulty_factor_increases_on_visitor_count_increase(data).await;
    -    }
    -
    -    pub async fn pow_difficulty_factor_increases_on_visitor_count_increase(
    -        data: ArcData,
    -    ) {
    -        use super::*;
    -        use crate::tests::*;
    -        use crate::*;
    -        use actix_web::test;
    -
    -        use libmcaptcha::defense::Level;
    -
    -        use crate::api::v1::mcaptcha::create::CreateCaptcha;
    -        use crate::api::v1::mcaptcha::create::MCaptchaDetails;
    -
    -        const NAME: &str = "powusrworks2";
    -        const PASSWORD: &str = "testingpas";
    -        const EMAIL: &str = "randomuser2@a.com";
    -        pub const L1: Level = Level {
    -            difficulty_factor: 10,
    -            visitor_threshold: 10,
    -        };
    -        pub const L2: Level = Level {
    -            difficulty_factor: 20,
    -            visitor_threshold: 20,
    -        };
    -
    -        pub const L3: Level = Level {
    -            difficulty_factor: 30,
    -            visitor_threshold: 30,
    -        };
    -
    -        let data = &data;
    -        let levels = [L1, L2, L3];
    -
    -        delete_user(data, NAME).await;
    -
    -        let (_, signin_resp) = register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let app = get_app!(data).await;
    -
    -        let create_captcha = CreateCaptcha {
    -            levels: levels.into(),
    -            duration: 30,
    -            description: "dummy".into(),
    -            publish_benchmarks: true,
    -        };
    -
    -        // 1. add level
    -        let add_token_resp = test::call_service(
    -            &app,
    -            post_request!(&create_captcha, V1_API_ROUTES.captcha.create)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(add_token_resp.status(), StatusCode::OK);
    -        let token_key: MCaptchaDetails = test::read_body_json(add_token_resp).await;
    -
    -        let get_config_payload = GetConfigPayload {
    -            key: token_key.key.clone(),
    -        };
    -
    -        let _url = V1_API_ROUTES.pow.get_config;
    -        let mut prev = 0;
    -        for (count, l) in levels.iter().enumerate() {
    -            for _l in prev..l.visitor_threshold * 2 {
    -                let _get_config_resp = test::call_service(
    -                    &app,
    -                    post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    -                        .to_request(),
    -                )
    -                .await;
    -            }
    -
    -            let get_config_resp = test::call_service(
    -                &app,
    -                post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    -                    .to_request(),
    -            )
    -            .await;
    -
    -            let config: PoWConfig = test::read_body_json(get_config_resp).await;
    -            println!(
    -                "[{count}] received difficulty_factor: {} prev difficulty_factor {}",
    -                config.difficulty_factor, prev
    -            );
    -            if count == levels.len() - 1 {
    -                assert!(config.difficulty_factor == prev);
    -            } else {
    -                assert!(config.difficulty_factor > prev);
    -            }
    -            prev = config.difficulty_factor;
    -        }
    -        // update and check changes
    -    }
    -}
    -
    \ No newline at end of file +get_config.rs - source

    mcaptcha/api/v1/pow/
    get_config.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//use actix::prelude::*;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use libmcaptcha::pow::PoWConfig;
    +9use libmcaptcha::{
    +10    defense::LevelBuilder, master::messages::AddSiteBuilder, DefenseBuilder,
    +11    MCaptchaBuilder,
    +12};
    +13use serde::{Deserialize, Serialize};
    +14
    +15use crate::errors::*;
    +16//use crate::stats::record::record_fetch;
    +17use crate::AppData;
    +18use crate::V1_API_ROUTES;
    +19
    +20#[derive(Clone, Debug, Deserialize, Serialize)]
    +21pub struct GetConfigPayload {
    +22    pub key: String,
    +23}
    +24
    +25#[derive(Clone, Serialize, Deserialize, Debug)]
    +26pub struct ApiPoWConfig {
    +27    pub string: String,
    +28    pub difficulty_factor: u32,
    +29    pub salt: String,
    +30    pub max_recorded_nonce: u32,
    +31}
    +32
    +33/// get PoW configuration for an mcaptcha key
    +34#[my_codegen::post(path = "V1_API_ROUTES.pow.get_config()")]
    +35pub async fn get_config(
    +36    payload: web::Json<GetConfigPayload>,
    +37    data: AppData,
    +38) -> ServiceResult<impl Responder> {
    +39    //if res.exists.is_none() {
    +40    if !data.db.captcha_exists(None, &payload.key).await? {
    +41        return Err(ServiceError::TokenNotFound);
    +42    }
    +43    let payload = payload.into_inner();
    +44
    +45    let config: ServiceResult<PoWConfig> =
    +46        match data.captcha.get_pow(payload.key.clone()).await {
    +47            Ok(Some(config)) => Ok(config),
    +48            Ok(None) => {
    +49                init_mcaptcha(&data, &payload.key).await?;
    +50                let config = data
    +51                    .captcha
    +52                    .get_pow(payload.key.clone())
    +53                    .await
    +54                    .expect("mcaptcha should be initialized and ready to go");
    +55                Ok(config.unwrap())
    +56            }
    +57            Err(e) => Err(e.into()),
    +58        };
    +59    let config = config?;
    +60    let max_nonce = data
    +61        .db
    +62        .get_max_nonce_for_level(&payload.key, config.difficulty_factor)
    +63        .await?;
    +64    data.stats.record_fetch(&data, &payload.key).await?;
    +65
    +66    let config = ApiPoWConfig {
    +67        string: config.string,
    +68        difficulty_factor: config.difficulty_factor,
    +69        salt: config.salt,
    +70        max_recorded_nonce: max_nonce,
    +71    };
    +72    Ok(HttpResponse::Ok().json(config))
    +73}
    +74/// Call this when [MCaptcha][libmcaptcha::MCaptcha] is not in master.
    +75///
    +76/// This fn gets mcaptcha config from database, builds [Defense][libmcaptcha::Defense],
    +77/// creates [MCaptcha][libmcaptcha::MCaptcha] and adds it to [Master][libmcaptcha::Defense]
    +78pub async fn init_mcaptcha(data: &AppData, key: &str) -> ServiceResult<()> {
    +79    println!("Initializing captcha");
    +80    // get levels
    +81    let levels = data.db.get_captcha_levels(None, key).await?;
    +82    let duration = data.db.get_captcha_cooldown(key).await?;
    +83
    +84    // build defense
    +85    let mut defense = DefenseBuilder::default();
    +86
    +87    for level in levels.iter() {
    +88        let level = LevelBuilder::default()
    +89            .visitor_threshold(level.visitor_threshold)
    +90            .difficulty_factor(level.difficulty_factor)
    +91            .unwrap()
    +92            .build()
    +93            .unwrap();
    +94        defense.add_level(level).unwrap();
    +95    }
    +96
    +97    let defense = defense.build()?;
    +98    println!("{:?}", defense);
    +99
    +100    // create captcha
    +101    let mcaptcha = MCaptchaBuilder::default()
    +102        .defense(defense)
    +103        // leaky bucket algorithm's emission interval
    +104        .duration(duration as u64)
    +105        //   .cache(cache)
    +106        .build()
    +107        .unwrap();
    +108
    +109    // add captcha to master
    +110    let msg = AddSiteBuilder::default()
    +111        .id(key.into())
    +112        .mcaptcha(mcaptcha)
    +113        .build()
    +114        .unwrap();
    +115
    +116    data.captcha.add_site(msg).await?;
    +117
    +118    Ok(())
    +119}
    +120
    +121#[cfg(test)]
    +122pub mod tests {
    +123    use crate::*;
    +124    use libmcaptcha::pow::PoWConfig;
    +125
    +126    #[actix_rt::test]
    +127    async fn get_pow_config_works_pg() {
    +128        let data = crate::tests::pg::get_data().await;
    +129        get_pow_config_works(data).await;
    +130    }
    +131
    +132    #[actix_rt::test]
    +133    async fn get_pow_config_works_maria() {
    +134        let data = crate::tests::maria::get_data().await;
    +135        get_pow_config_works(data).await;
    +136    }
    +137
    +138    pub async fn get_pow_config_works(data: ArcData) {
    +139        use super::*;
    +140        use crate::tests::*;
    +141        use crate::*;
    +142        use actix_web::test;
    +143
    +144        const NAME: &str = "powusrworks";
    +145        const PASSWORD: &str = "testingpas";
    +146        const EMAIL: &str = "randomuser@a.com";
    +147
    +148        let data = &data;
    +149
    +150        delete_user(data, NAME).await;
    +151
    +152        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +153        let (_, _signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    +154        let app = get_app!(data).await;
    +155
    +156        let get_config_payload = GetConfigPayload {
    +157            key: token_key.key.clone(),
    +158        };
    +159
    +160        // update and check changes
    +161
    +162        let url = V1_API_ROUTES.pow.get_config;
    +163        println!("{}", &url);
    +164        let get_config_resp = test::call_service(
    +165            &app,
    +166            post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    +167                .to_request(),
    +168        )
    +169        .await;
    +170        assert_eq!(get_config_resp.status(), StatusCode::OK);
    +171        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    +172        assert_eq!(config.difficulty_factor, L1.difficulty_factor);
    +173    }
    +174
    +175    #[actix_rt::test]
    +176    async fn pow_difficulty_factor_increases_on_visitor_count_increase_pg() {
    +177        let data = crate::tests::pg::get_data().await;
    +178        pow_difficulty_factor_increases_on_visitor_count_increase(data).await;
    +179    }
    +180
    +181    #[actix_rt::test]
    +182    async fn pow_difficulty_factor_increases_on_visitor_count_increase_maria() {
    +183        let data = crate::tests::maria::get_data().await;
    +184        pow_difficulty_factor_increases_on_visitor_count_increase(data).await;
    +185    }
    +186
    +187    pub async fn pow_difficulty_factor_increases_on_visitor_count_increase(
    +188        data: ArcData,
    +189    ) {
    +190        use super::*;
    +191        use crate::tests::*;
    +192        use crate::*;
    +193        use actix_web::test;
    +194
    +195        use libmcaptcha::defense::Level;
    +196
    +197        use crate::api::v1::mcaptcha::create::CreateCaptcha;
    +198        use crate::api::v1::mcaptcha::create::MCaptchaDetails;
    +199
    +200        const NAME: &str = "powusrworks2";
    +201        const PASSWORD: &str = "testingpas";
    +202        const EMAIL: &str = "randomuser2@a.com";
    +203        pub const L1: Level = Level {
    +204            difficulty_factor: 10,
    +205            visitor_threshold: 10,
    +206        };
    +207        pub const L2: Level = Level {
    +208            difficulty_factor: 20,
    +209            visitor_threshold: 20,
    +210        };
    +211
    +212        pub const L3: Level = Level {
    +213            difficulty_factor: 30,
    +214            visitor_threshold: 30,
    +215        };
    +216
    +217        let data = &data;
    +218        let levels = [L1, L2, L3];
    +219
    +220        delete_user(data, NAME).await;
    +221
    +222        let (_, signin_resp) = register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +223        let cookies = get_cookie!(signin_resp);
    +224        let app = get_app!(data).await;
    +225
    +226        let create_captcha = CreateCaptcha {
    +227            levels: levels.into(),
    +228            duration: 30,
    +229            description: "dummy".into(),
    +230            publish_benchmarks: true,
    +231        };
    +232
    +233        // 1. add level
    +234        let add_token_resp = test::call_service(
    +235            &app,
    +236            post_request!(&create_captcha, V1_API_ROUTES.captcha.create)
    +237                .cookie(cookies.clone())
    +238                .to_request(),
    +239        )
    +240        .await;
    +241        assert_eq!(add_token_resp.status(), StatusCode::OK);
    +242        let token_key: MCaptchaDetails = test::read_body_json(add_token_resp).await;
    +243
    +244        let get_config_payload = GetConfigPayload {
    +245            key: token_key.key.clone(),
    +246        };
    +247
    +248        let _url = V1_API_ROUTES.pow.get_config;
    +249        let mut prev = 0;
    +250        for (count, l) in levels.iter().enumerate() {
    +251            for _l in prev..l.visitor_threshold * 2 {
    +252                let _get_config_resp = test::call_service(
    +253                    &app,
    +254                    post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    +255                        .to_request(),
    +256                )
    +257                .await;
    +258            }
    +259
    +260            let get_config_resp = test::call_service(
    +261                &app,
    +262                post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    +263                    .to_request(),
    +264            )
    +265            .await;
    +266
    +267            let config: PoWConfig = test::read_body_json(get_config_resp).await;
    +268            println!(
    +269                "[{count}] received difficulty_factor: {} prev difficulty_factor {}",
    +270                config.difficulty_factor, prev
    +271            );
    +272            if count == levels.len() - 1 {
    +273                assert!(config.difficulty_factor == prev);
    +274            } else {
    +275                assert!(config.difficulty_factor > prev);
    +276            }
    +277            prev = config.difficulty_factor;
    +278        }
    +279        // update and check changes
    +280    }
    +281}
    \ 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 7d2414a6..1663004c 100644 --- a/src/mcaptcha/api/v1/pow/mod.rs.html +++ b/src/mcaptcha/api/v1/pow/mod.rs.html @@ -1,171 +1,84 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::web;
    -
    -pub mod get_config;
    -pub mod verify_pow;
    -pub mod verify_token;
    -
    -pub use super::mcaptcha::get::I32Levels;
    -
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    let cors = actix_cors::Cors::default()
    -        .allow_any_origin()
    -        .allowed_methods(vec!["POST", "GET"])
    -        .allow_any_header()
    -        .max_age(3600)
    -        .send_wildcard();
    -
    -    let routes = crate::V1_API_ROUTES.pow;
    -    cfg.service(
    -        web::scope(routes.scope)
    -            .wrap(cors)
    -            .service(verify_pow::verify_pow)
    -            .service(get_config::get_config)
    -            .service(verify_token::validate_captcha_token),
    -    );
    -}
    -
    -pub mod routes {
    -    pub struct PoW {
    -        pub get_config: &'static str,
    -        pub verify_pow: &'static str,
    -        pub validate_captcha_token: &'static str,
    -        pub scope: &'static str,
    -    }
    -
    -    macro_rules! rm_scope {
    -        ($name:ident) => {
    -            /// remove scope for $name route
    -            pub fn $name(&self) -> &str {
    -                self.$name
    -                    //.strip_prefix(&self.scope[..self.scope.len() - 1])
    -                    .strip_prefix(self.scope)
    -                    .unwrap()
    -            }
    -        };
    -    }
    -
    -    impl PoW {
    -        pub const fn new() -> Self {
    -            // date: 2021-11-29 16:31
    -            // commit: 6eb75d7
    -            // route 404s when scope contained trailing slash
    -            //let scope = "/api/v1/pow/";
    -            let scope = "/api/v1/pow";
    -            PoW {
    -                get_config: "/api/v1/pow/config",
    -                verify_pow: "/api/v1/pow/verify",
    -                validate_captcha_token: "/api/v1/pow/siteverify",
    -                scope,
    -            }
    -        }
    -
    -        rm_scope!(get_config);
    -        rm_scope!(verify_pow);
    -        rm_scope!(validate_captcha_token);
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use super::routes::PoW;
    -
    -    #[test]
    -    fn scope_pow_works() {
    -        let pow = PoW::new();
    -        assert_eq!(pow.get_config(), "/config");
    -        assert_eq!(pow.verify_pow(), "/verify");
    -        assert_eq!(pow.validate_captcha_token(), "/siteverify");
    -    }
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/api/v1/pow/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::web;
    +7
    +8pub mod get_config;
    +9pub mod verify_pow;
    +10pub mod verify_token;
    +11
    +12pub use super::mcaptcha::get::I32Levels;
    +13
    +14pub fn services(cfg: &mut web::ServiceConfig) {
    +15    let cors = actix_cors::Cors::default()
    +16        .allow_any_origin()
    +17        .allowed_methods(vec!["POST", "GET"])
    +18        .allow_any_header()
    +19        .max_age(3600)
    +20        .send_wildcard();
    +21
    +22    let routes = crate::V1_API_ROUTES.pow;
    +23    cfg.service(
    +24        web::scope(routes.scope)
    +25            .wrap(cors)
    +26            .service(verify_pow::verify_pow)
    +27            .service(get_config::get_config)
    +28            .service(verify_token::validate_captcha_token),
    +29    );
    +30}
    +31
    +32pub mod routes {
    +33    pub struct PoW {
    +34        pub get_config: &'static str,
    +35        pub verify_pow: &'static str,
    +36        pub validate_captcha_token: &'static str,
    +37        pub scope: &'static str,
    +38    }
    +39
    +40    macro_rules! rm_scope {
    +41        ($name:ident) => {
    +42            /// remove scope for $name route
    +43            pub fn $name(&self) -> &str {
    +44                self.$name
    +45                    //.strip_prefix(&self.scope[..self.scope.len() - 1])
    +46                    .strip_prefix(self.scope)
    +47                    .unwrap()
    +48            }
    +49        };
    +50    }
    +51
    +52    impl PoW {
    +53        pub const fn new() -> Self {
    +54            // date: 2021-11-29 16:31
    +55            // commit: 6eb75d7
    +56            // route 404s when scope contained trailing slash
    +57            //let scope = "/api/v1/pow/";
    +58            let scope = "/api/v1/pow";
    +59            PoW {
    +60                get_config: "/api/v1/pow/config",
    +61                verify_pow: "/api/v1/pow/verify",
    +62                validate_captcha_token: "/api/v1/pow/siteverify",
    +63                scope,
    +64            }
    +65        }
    +66
    +67        rm_scope!(get_config);
    +68        rm_scope!(verify_pow);
    +69        rm_scope!(validate_captcha_token);
    +70    }
    +71}
    +72
    +73#[cfg(test)]
    +74mod tests {
    +75    use super::routes::PoW;
    +76
    +77    #[test]
    +78    fn scope_pow_works() {
    +79        let pow = PoW::new();
    +80        assert_eq!(pow.get_config(), "/config");
    +81        assert_eq!(pow.verify_pow(), "/verify");
    +82        assert_eq!(pow.validate_captcha_token(), "/siteverify");
    +83    }
    +84}
    \ 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 1841214c..e0c326e9 100644 --- a/src/mcaptcha/api/v1/pow/verify_pow.rs.html +++ b/src/mcaptcha/api/v1/pow/verify_pow.rs.html @@ -1,523 +1,260 @@ -verify_pow.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! PoW Verification module
    -
    -use actix_web::HttpRequest;
    -use actix_web::{web, HttpResponse, Responder};
    -use libmcaptcha::pow::Work;
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -use crate::V1_API_ROUTES;
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -/// validation token that clients receive as proof for submiting
    -/// valid PoW
    -pub struct ValidationToken {
    -    pub token: String,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct ApiWork {
    -    pub string: String,
    -    pub result: String,
    -    pub nonce: u64,
    -    pub key: String,
    -    pub time: Option<u32>,
    -    pub worker_type: Option<String>,
    -}
    -
    -impl From<ApiWork> for Work {
    -    fn from(value: ApiWork) -> Self {
    -        Self {
    -            string: value.string,
    -            nonce: value.nonce,
    -            result: value.result,
    -            key: value.key,
    -        }
    -    }
    -}
    -
    -// API keys are mcaptcha actor names
    -
    -/// route handler that verifies PoW and issues a solution token
    -/// if verification is successful
    -#[my_codegen::post(path = "V1_API_ROUTES.pow.verify_pow()")]
    -pub async fn verify_pow(
    -    req: HttpRequest,
    -    payload: web::Json<ApiWork>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    #[cfg(not(test))]
    -    let ip = req.connection_info().peer_addr().unwrap().to_string();
    -    // From actix-web docs:
    -    //  Will only return None when called in unit tests unless TestRequest::peer_addr is used.
    -    //
    -    // ref: https://docs.rs/actix-web/latest/actix_web/struct.HttpRequest.html#method.peer_addr
    -    #[cfg(test)]
    -    let ip = "127.0.1.1".into();
    -
    -    let key = payload.key.clone();
    -    let payload = payload.into_inner();
    -    let worker_type = payload.worker_type.clone();
    -    let time = payload.time;
    -    let nonce = payload.nonce;
    -    let (res, difficulty_factor) = data.captcha.verify_pow(payload.into(), ip).await?;
    -    data.stats.record_solve(&data, &key).await?;
    -    if let (Some(time), Some(worker_type)) = (time, worker_type) {
    -        let analytics = db_core::CreatePerformanceAnalytics {
    -            difficulty_factor,
    -            time,
    -            worker_type,
    -        };
    -        data.db.analysis_save(&key, &analytics).await?;
    -    }
    -    data.db
    -        .update_max_nonce_for_level(&key, difficulty_factor, nonce as u32)
    -        .await?;
    -    let payload = ValidationToken { token: res };
    -    Ok(HttpResponse::Ok().json(payload))
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -    use libmcaptcha::pow::PoWConfig;
    -
    -    use super::*;
    -    use crate::api::v1::pow::get_config::GetConfigPayload;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn verify_pow_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        verify_pow_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn verify_pow_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        verify_pow_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn verify_analytics_pow_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        verify_analytics_pow_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn verify_analytics_pow_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        verify_analytics_pow_works(data).await;
    -    }
    -
    -    pub async fn verify_analytics_pow_works(data: ArcData) {
    -        const NAME: &str = "powanalyticsuser";
    -        const PASSWORD: &str = "testingpas";
    -        const EMAIL: &str = "powanalyticsuser@a.com";
    -        let data = &data;
    -
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, _signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let app = get_app!(data).await;
    -
    -        let get_config_payload = GetConfigPayload {
    -            key: token_key.key.clone(),
    -        };
    -
    -        // update and check changes
    -
    -        let get_config_resp = test::call_service(
    -            &app,
    -            post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(get_config_resp.status(), StatusCode::OK);
    -        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    -
    -        let pow = mcaptcha_pow_sha256::ConfigBuilder::default()
    -            .salt(config.salt)
    -            .build()
    -            .unwrap();
    -        let work = pow
    -            .prove_work(&config.string.clone(), config.difficulty_factor)
    -            .unwrap();
    -
    -        let work = ApiWork {
    -            string: config.string.clone(),
    -            result: work.result,
    -            nonce: work.nonce,
    -            key: token_key.key.clone(),
    -            time: Some(100),
    -            worker_type: Some("wasm".into()),
    -        };
    -
    -        let pow_verify_resp = test::call_service(
    -            &app,
    -            post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(),
    -        )
    -        .await;
    -        assert_eq!(pow_verify_resp.status(), StatusCode::OK);
    -        let limit = 50;
    -        let offset = 0;
    -        let mut analytics = data
    -            .db
    -            .analytics_fetch(&token_key.key, limit, offset)
    -            .await
    -            .unwrap();
    -        assert_eq!(analytics.len(), 1);
    -        let a = analytics.pop().unwrap();
    -        assert_eq!(a.time, work.time.unwrap());
    -        assert_eq!(a.worker_type, work.worker_type.unwrap());
    -    }
    -
    -    pub async fn verify_pow_works(data: ArcData) {
    -        const NAME: &str = "powverifyusr";
    -        const PASSWORD: &str = "testingpas";
    -        const EMAIL: &str = "verifyuser@a.com";
    -        let data = &data;
    -
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, _signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let app = get_app!(data).await;
    -
    -        let get_config_payload = GetConfigPayload {
    -            key: token_key.key.clone(),
    -        };
    -
    -        // update and check changes
    -
    -        let get_config_resp = test::call_service(
    -            &app,
    -            post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(get_config_resp.status(), StatusCode::OK);
    -        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    -
    -        let pow = mcaptcha_pow_sha256::ConfigBuilder::default()
    -            .salt(config.salt)
    -            .build()
    -            .unwrap();
    -        let work = pow
    -            .prove_work(&config.string.clone(), config.difficulty_factor)
    -            .unwrap();
    -
    -        let work = Work {
    -            string: config.string.clone(),
    -            result: work.result,
    -            nonce: work.nonce,
    -            key: token_key.key.clone(),
    -        };
    -
    -        let pow_verify_resp = test::call_service(
    -            &app,
    -            post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(),
    -        )
    -        .await;
    -        assert_eq!(pow_verify_resp.status(), StatusCode::OK);
    -        assert!(data
    -            .db
    -            .analytics_fetch(&token_key.key, 50, 0)
    -            .await
    -            .unwrap()
    -            .is_empty());
    -
    -        let string_not_found = test::call_service(
    -            &app,
    -            post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(),
    -        )
    -        .await;
    -        assert_eq!(string_not_found.status(), StatusCode::BAD_REQUEST);
    -        let err: ErrorToResponse = test::read_body_json(string_not_found).await;
    -        assert_eq!(err.error, "Challenge: not found");
    -
    -        // let pow_config_resp = test::call_service(
    -        //     &app,
    -        //     post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config).to_request(),
    -        // )
    -        // .await;
    -        // assert_eq!(pow_config_resp.status(), StatusCode::OK);
    -        // I'm not checking for errors because changing work.result triggered
    -        // InssuficientDifficulty, which is possible because libmcaptcha calculates
    -        // difficulty with the submitted result. Besides, this endpoint is merely
    -        // propagating errors from libmcaptcha and libmcaptcha has tests covering the
    -        // pow aspects ¯\_(ツ)_/¯
    -    }
    -}
    -
    \ No newline at end of file +verify_pow.rs - source

    mcaptcha/api/v1/pow/
    verify_pow.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! PoW Verification module
    +7
    +8use actix_web::HttpRequest;
    +9use actix_web::{web, HttpResponse, Responder};
    +10use libmcaptcha::pow::Work;
    +11use serde::{Deserialize, Serialize};
    +12
    +13use crate::errors::*;
    +14use crate::AppData;
    +15use crate::V1_API_ROUTES;
    +16
    +17#[derive(Clone, Debug, Deserialize, Serialize)]
    +18/// validation token that clients receive as proof for submiting
    +19/// valid PoW
    +20pub struct ValidationToken {
    +21    pub token: String,
    +22}
    +23
    +24#[derive(Clone, Debug, Deserialize, Serialize)]
    +25pub struct ApiWork {
    +26    pub string: String,
    +27    pub result: String,
    +28    pub nonce: u64,
    +29    pub key: String,
    +30    pub time: Option<u32>,
    +31    pub worker_type: Option<String>,
    +32}
    +33
    +34impl From<ApiWork> for Work {
    +35    fn from(value: ApiWork) -> Self {
    +36        Self {
    +37            string: value.string,
    +38            nonce: value.nonce,
    +39            result: value.result,
    +40            key: value.key,
    +41        }
    +42    }
    +43}
    +44
    +45// API keys are mcaptcha actor names
    +46
    +47/// route handler that verifies PoW and issues a solution token
    +48/// if verification is successful
    +49#[my_codegen::post(path = "V1_API_ROUTES.pow.verify_pow()")]
    +50pub async fn verify_pow(
    +51    req: HttpRequest,
    +52    payload: web::Json<ApiWork>,
    +53    data: AppData,
    +54) -> ServiceResult<impl Responder> {
    +55    #[cfg(not(test))]
    +56    let ip = req.connection_info().peer_addr().unwrap().to_string();
    +57    // From actix-web docs:
    +58    //  Will only return None when called in unit tests unless TestRequest::peer_addr is used.
    +59    //
    +60    // ref: https://docs.rs/actix-web/latest/actix_web/struct.HttpRequest.html#method.peer_addr
    +61    #[cfg(test)]
    +62    let ip = "127.0.1.1".into();
    +63
    +64    let key = payload.key.clone();
    +65    let payload = payload.into_inner();
    +66    let worker_type = payload.worker_type.clone();
    +67    let time = payload.time;
    +68    let nonce = payload.nonce;
    +69    let (res, difficulty_factor) = data.captcha.verify_pow(payload.into(), ip).await?;
    +70    data.stats.record_solve(&data, &key).await?;
    +71    if let (Some(time), Some(worker_type)) = (time, worker_type) {
    +72        let analytics = db_core::CreatePerformanceAnalytics {
    +73            difficulty_factor,
    +74            time,
    +75            worker_type,
    +76        };
    +77        data.db.analysis_save(&key, &analytics).await?;
    +78    }
    +79    data.db
    +80        .update_max_nonce_for_level(&key, difficulty_factor, nonce as u32)
    +81        .await?;
    +82    let payload = ValidationToken { token: res };
    +83    Ok(HttpResponse::Ok().json(payload))
    +84}
    +85
    +86#[cfg(test)]
    +87pub mod tests {
    +88    use actix_web::http::StatusCode;
    +89    use actix_web::test;
    +90    use libmcaptcha::pow::PoWConfig;
    +91
    +92    use super::*;
    +93    use crate::api::v1::pow::get_config::GetConfigPayload;
    +94    use crate::tests::*;
    +95    use crate::*;
    +96
    +97    #[actix_rt::test]
    +98    async fn verify_pow_works_pg() {
    +99        let data = crate::tests::pg::get_data().await;
    +100        verify_pow_works(data).await;
    +101    }
    +102
    +103    #[actix_rt::test]
    +104    async fn verify_pow_works_maria() {
    +105        let data = crate::tests::maria::get_data().await;
    +106        verify_pow_works(data).await;
    +107    }
    +108
    +109    #[actix_rt::test]
    +110    async fn verify_analytics_pow_works_pg() {
    +111        let data = crate::tests::pg::get_data().await;
    +112        verify_analytics_pow_works(data).await;
    +113    }
    +114
    +115    #[actix_rt::test]
    +116    async fn verify_analytics_pow_works_maria() {
    +117        let data = crate::tests::maria::get_data().await;
    +118        verify_analytics_pow_works(data).await;
    +119    }
    +120
    +121    pub async fn verify_analytics_pow_works(data: ArcData) {
    +122        const NAME: &str = "powanalyticsuser";
    +123        const PASSWORD: &str = "testingpas";
    +124        const EMAIL: &str = "powanalyticsuser@a.com";
    +125        let data = &data;
    +126
    +127        delete_user(data, NAME).await;
    +128
    +129        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +130        let (_, _signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    +131        let app = get_app!(data).await;
    +132
    +133        let get_config_payload = GetConfigPayload {
    +134            key: token_key.key.clone(),
    +135        };
    +136
    +137        // update and check changes
    +138
    +139        let get_config_resp = test::call_service(
    +140            &app,
    +141            post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    +142                .to_request(),
    +143        )
    +144        .await;
    +145        assert_eq!(get_config_resp.status(), StatusCode::OK);
    +146        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    +147
    +148        let pow = mcaptcha_pow_sha256::ConfigBuilder::default()
    +149            .salt(config.salt)
    +150            .build()
    +151            .unwrap();
    +152        let work = pow
    +153            .prove_work(&config.string.clone(), config.difficulty_factor)
    +154            .unwrap();
    +155
    +156        let work = ApiWork {
    +157            string: config.string.clone(),
    +158            result: work.result,
    +159            nonce: work.nonce,
    +160            key: token_key.key.clone(),
    +161            time: Some(100),
    +162            worker_type: Some("wasm".into()),
    +163        };
    +164
    +165        let pow_verify_resp = test::call_service(
    +166            &app,
    +167            post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(),
    +168        )
    +169        .await;
    +170        assert_eq!(pow_verify_resp.status(), StatusCode::OK);
    +171        let limit = 50;
    +172        let offset = 0;
    +173        let mut analytics = data
    +174            .db
    +175            .analytics_fetch(&token_key.key, limit, offset)
    +176            .await
    +177            .unwrap();
    +178        assert_eq!(analytics.len(), 1);
    +179        let a = analytics.pop().unwrap();
    +180        assert_eq!(a.time, work.time.unwrap());
    +181        assert_eq!(a.worker_type, work.worker_type.unwrap());
    +182    }
    +183
    +184    pub async fn verify_pow_works(data: ArcData) {
    +185        const NAME: &str = "powverifyusr";
    +186        const PASSWORD: &str = "testingpas";
    +187        const EMAIL: &str = "verifyuser@a.com";
    +188        let data = &data;
    +189
    +190        delete_user(data, NAME).await;
    +191
    +192        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +193        let (_, _signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    +194        let app = get_app!(data).await;
    +195
    +196        let get_config_payload = GetConfigPayload {
    +197            key: token_key.key.clone(),
    +198        };
    +199
    +200        // update and check changes
    +201
    +202        let get_config_resp = test::call_service(
    +203            &app,
    +204            post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config)
    +205                .to_request(),
    +206        )
    +207        .await;
    +208        assert_eq!(get_config_resp.status(), StatusCode::OK);
    +209        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    +210
    +211        let pow = mcaptcha_pow_sha256::ConfigBuilder::default()
    +212            .salt(config.salt)
    +213            .build()
    +214            .unwrap();
    +215        let work = pow
    +216            .prove_work(&config.string.clone(), config.difficulty_factor)
    +217            .unwrap();
    +218
    +219        let work = Work {
    +220            string: config.string.clone(),
    +221            result: work.result,
    +222            nonce: work.nonce,
    +223            key: token_key.key.clone(),
    +224        };
    +225
    +226        let pow_verify_resp = test::call_service(
    +227            &app,
    +228            post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(),
    +229        )
    +230        .await;
    +231        assert_eq!(pow_verify_resp.status(), StatusCode::OK);
    +232        assert!(data
    +233            .db
    +234            .analytics_fetch(&token_key.key, 50, 0)
    +235            .await
    +236            .unwrap()
    +237            .is_empty());
    +238
    +239        let string_not_found = test::call_service(
    +240            &app,
    +241            post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(),
    +242        )
    +243        .await;
    +244        assert_eq!(string_not_found.status(), StatusCode::BAD_REQUEST);
    +245        let err: ErrorToResponse = test::read_body_json(string_not_found).await;
    +246        assert_eq!(err.error, "Challenge: not found");
    +247
    +248        // let pow_config_resp = test::call_service(
    +249        //     &app,
    +250        //     post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config).to_request(),
    +251        // )
    +252        // .await;
    +253        // assert_eq!(pow_config_resp.status(), StatusCode::OK);
    +254        // I'm not checking for errors because changing work.result triggered
    +255        // InssuficientDifficulty, which is possible because libmcaptcha calculates
    +256        // difficulty with the submitted result. Besides, this endpoint is merely
    +257        // propagating errors from libmcaptcha and libmcaptcha has tests covering the
    +258        // pow aspects ¯\_(ツ)_/¯
    +259    }
    +260}
    \ 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 f6b8b6c9..739ee2b4 100644 --- a/src/mcaptcha/api/v1/pow/verify_token.rs.html +++ b/src/mcaptcha/api/v1/pow/verify_token.rs.html @@ -1,397 +1,197 @@ -verify_token.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! PoW success token module
    -
    -use actix_web::{web, HttpResponse, Responder};
    -use libmcaptcha::cache::messages::VerifyCaptchaResult;
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -use crate::V1_API_ROUTES;
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct CaptchaValidateResp {
    -    pub valid: bool,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Serialize)]
    -pub struct VerifyCaptchaResultPayload {
    -    pub secret: String,
    -    pub key: String,
    -    pub token: String,
    -}
    -
    -impl From<VerifyCaptchaResultPayload> for VerifyCaptchaResult {
    -    fn from(m: VerifyCaptchaResultPayload) -> Self {
    -        VerifyCaptchaResult {
    -            token: m.token,
    -            key: m.key,
    -        }
    -    }
    -}
    -
    -// API keys are mcaptcha actor names
    -
    -/// route handler that validates a PoW solution token
    -#[my_codegen::post(path = "V1_API_ROUTES.pow.validate_captcha_token()")]
    -pub async fn validate_captcha_token(
    -    payload: web::Json<VerifyCaptchaResultPayload>,
    -    data: AppData,
    -) -> ServiceResult<impl Responder> {
    -    let secret = data.db.get_secret_from_captcha(&payload.key).await?;
    -    if secret.secret != payload.secret {
    -        return Err(ServiceError::WrongPassword);
    -    }
    -    let payload: VerifyCaptchaResult = payload.into_inner().into();
    -    let key = payload.key.clone();
    -    let res = data.captcha.validate_verification_tokens(payload).await?;
    -    let resp = CaptchaValidateResp { valid: res };
    -    data.stats.record_confirm(&data, &key).await?;
    -    //println!("{:?}", &payload);
    -    Ok(HttpResponse::Ok().json(resp))
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -    use libmcaptcha::pow::PoWConfig;
    -    use libmcaptcha::pow::Work;
    -
    -    use super::*;
    -    use crate::api::v1::pow::get_config::GetConfigPayload;
    -    use crate::api::v1::pow::verify_pow::ValidationToken;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn validate_captcha_token_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        validate_captcha_token_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn validate_captcha_token_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        validate_captcha_token_works(data).await;
    -    }
    -
    -    pub async fn validate_captcha_token_works(data: ArcData) {
    -        const NAME: &str = "enterprisetken";
    -        const PASSWORD: &str = "testingpas";
    -        const EMAIL: &str = "verifyuser@enter.com";
    -        const VERIFY_CAPTCHA_URL: &str = "/api/v1/pow/verify";
    -        const GET_URL: &str = "/api/v1/pow/config";
    -        const VERIFY_TOKEN_URL: &str = "/api/v1/pow/siteverify";
    -        //        const UPDATE_URL: &str = "/api/v1/mcaptcha/domain/token/duration/update";
    -
    -        let data = &data;
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let app = get_app!(data).await;
    -        let cookies = get_cookie!(signin_resp);
    -
    -        let secret = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .cookie(cookies.clone())
    -                .uri(V1_API_ROUTES.account.get_secret)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(secret.status(), StatusCode::OK);
    -        let secret: db_core::Secret = test::read_body_json(secret).await;
    -        let secret = secret.secret;
    -
    -        let get_config_payload = GetConfigPayload {
    -            key: token_key.key.clone(),
    -        };
    -
    -        // update and check changes
    -
    -        let get_config_resp = test::call_service(
    -            &app,
    -            post_request!(&get_config_payload, GET_URL).to_request(),
    -        )
    -        .await;
    -        assert_eq!(get_config_resp.status(), StatusCode::OK);
    -        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    -
    -        let pow = mcaptcha_pow_sha256::ConfigBuilder::default()
    -            .salt(config.salt)
    -            .build()
    -            .unwrap();
    -        let work = pow
    -            .prove_work(&config.string.clone(), config.difficulty_factor)
    -            .unwrap();
    -
    -        let work = Work {
    -            string: config.string.clone(),
    -            result: work.result,
    -            nonce: work.nonce,
    -            key: token_key.key.clone(),
    -        };
    -
    -        let pow_verify_resp = test::call_service(
    -            &app,
    -            post_request!(&work, VERIFY_CAPTCHA_URL).to_request(),
    -        )
    -        .await;
    -        assert_eq!(pow_verify_resp.status(), StatusCode::OK);
    -        let client_token: ValidationToken = test::read_body_json(pow_verify_resp).await;
    -
    -        let mut validate_payload = VerifyCaptchaResultPayload {
    -            token: client_token.token.clone(),
    -            key: token_key.key.clone(),
    -            secret: NAME.to_string(),
    -        };
    -
    -        // siteverify authentication failure
    -        bad_post_req_test(
    -            data,
    -            NAME,
    -            PASSWORD,
    -            VERIFY_TOKEN_URL,
    -            &validate_payload,
    -            ServiceError::WrongPassword,
    -        )
    -        .await;
    -        //       let validate_client_token = test::call_service(
    -        //            &app,
    -        //            post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(),
    -        //        )
    -        //        .await;
    -        //        assert_eq!(validate_client_token.status(), StatusCode::OK);
    -        //        let resp: CaptchaValidateResp =
    -        //            test::read_body_json(validate_client_token).await;
    -        //        assert!(resp.valid);
    -
    -        // verifying work
    -        validate_payload.secret = secret.clone();
    -
    -        let validate_client_token = test::call_service(
    -            &app,
    -            post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(),
    -        )
    -        .await;
    -        assert_eq!(validate_client_token.status(), StatusCode::OK);
    -        let resp: CaptchaValidateResp =
    -            test::read_body_json(validate_client_token).await;
    -        assert!(resp.valid);
    -
    -        // string not found
    -        let string_not_found = test::call_service(
    -            &app,
    -            post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(),
    -        )
    -        .await;
    -        let resp: CaptchaValidateResp = test::read_body_json(string_not_found).await;
    -        assert!(!resp.valid);
    -    }
    -}
    -
    \ No newline at end of file +verify_token.rs - source

    mcaptcha/api/v1/pow/
    verify_token.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! PoW success token module
    +7
    +8use actix_web::{web, HttpResponse, Responder};
    +9use libmcaptcha::cache::messages::VerifyCaptchaResult;
    +10use serde::{Deserialize, Serialize};
    +11
    +12use crate::errors::*;
    +13use crate::AppData;
    +14use crate::V1_API_ROUTES;
    +15
    +16#[derive(Clone, Debug, Deserialize, Serialize)]
    +17pub struct CaptchaValidateResp {
    +18    pub valid: bool,
    +19}
    +20
    +21#[derive(Clone, Debug, Deserialize, Serialize)]
    +22pub struct VerifyCaptchaResultPayload {
    +23    pub secret: String,
    +24    pub key: String,
    +25    pub token: String,
    +26}
    +27
    +28impl From<VerifyCaptchaResultPayload> for VerifyCaptchaResult {
    +29    fn from(m: VerifyCaptchaResultPayload) -> Self {
    +30        VerifyCaptchaResult {
    +31            token: m.token,
    +32            key: m.key,
    +33        }
    +34    }
    +35}
    +36
    +37// API keys are mcaptcha actor names
    +38
    +39/// route handler that validates a PoW solution token
    +40#[my_codegen::post(path = "V1_API_ROUTES.pow.validate_captcha_token()")]
    +41pub async fn validate_captcha_token(
    +42    payload: web::Json<VerifyCaptchaResultPayload>,
    +43    data: AppData,
    +44) -> ServiceResult<impl Responder> {
    +45    let secret = data.db.get_secret_from_captcha(&payload.key).await?;
    +46    if secret.secret != payload.secret {
    +47        return Err(ServiceError::WrongPassword);
    +48    }
    +49    let payload: VerifyCaptchaResult = payload.into_inner().into();
    +50    let key = payload.key.clone();
    +51    let res = data.captcha.validate_verification_tokens(payload).await?;
    +52    let resp = CaptchaValidateResp { valid: res };
    +53    data.stats.record_confirm(&data, &key).await?;
    +54    //println!("{:?}", &payload);
    +55    Ok(HttpResponse::Ok().json(resp))
    +56}
    +57
    +58#[cfg(test)]
    +59pub mod tests {
    +60    use actix_web::http::StatusCode;
    +61    use actix_web::test;
    +62    use libmcaptcha::pow::PoWConfig;
    +63    use libmcaptcha::pow::Work;
    +64
    +65    use super::*;
    +66    use crate::api::v1::pow::get_config::GetConfigPayload;
    +67    use crate::api::v1::pow::verify_pow::ValidationToken;
    +68    use crate::tests::*;
    +69    use crate::*;
    +70
    +71    #[actix_rt::test]
    +72    async fn validate_captcha_token_works_pg() {
    +73        let data = crate::tests::pg::get_data().await;
    +74        validate_captcha_token_works(data).await;
    +75    }
    +76
    +77    #[actix_rt::test]
    +78    async fn validate_captcha_token_works_maria() {
    +79        let data = crate::tests::maria::get_data().await;
    +80        validate_captcha_token_works(data).await;
    +81    }
    +82
    +83    pub async fn validate_captcha_token_works(data: ArcData) {
    +84        const NAME: &str = "enterprisetken";
    +85        const PASSWORD: &str = "testingpas";
    +86        const EMAIL: &str = "verifyuser@enter.com";
    +87        const VERIFY_CAPTCHA_URL: &str = "/api/v1/pow/verify";
    +88        const GET_URL: &str = "/api/v1/pow/config";
    +89        const VERIFY_TOKEN_URL: &str = "/api/v1/pow/siteverify";
    +90        //        const UPDATE_URL: &str = "/api/v1/mcaptcha/domain/token/duration/update";
    +91
    +92        let data = &data;
    +93        delete_user(data, NAME).await;
    +94
    +95        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +96        let (_, signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    +97        let app = get_app!(data).await;
    +98        let cookies = get_cookie!(signin_resp);
    +99
    +100        let secret = test::call_service(
    +101            &app,
    +102            test::TestRequest::get()
    +103                .cookie(cookies.clone())
    +104                .uri(V1_API_ROUTES.account.get_secret)
    +105                .to_request(),
    +106        )
    +107        .await;
    +108        assert_eq!(secret.status(), StatusCode::OK);
    +109        let secret: db_core::Secret = test::read_body_json(secret).await;
    +110        let secret = secret.secret;
    +111
    +112        let get_config_payload = GetConfigPayload {
    +113            key: token_key.key.clone(),
    +114        };
    +115
    +116        // update and check changes
    +117
    +118        let get_config_resp = test::call_service(
    +119            &app,
    +120            post_request!(&get_config_payload, GET_URL).to_request(),
    +121        )
    +122        .await;
    +123        assert_eq!(get_config_resp.status(), StatusCode::OK);
    +124        let config: PoWConfig = test::read_body_json(get_config_resp).await;
    +125
    +126        let pow = mcaptcha_pow_sha256::ConfigBuilder::default()
    +127            .salt(config.salt)
    +128            .build()
    +129            .unwrap();
    +130        let work = pow
    +131            .prove_work(&config.string.clone(), config.difficulty_factor)
    +132            .unwrap();
    +133
    +134        let work = Work {
    +135            string: config.string.clone(),
    +136            result: work.result,
    +137            nonce: work.nonce,
    +138            key: token_key.key.clone(),
    +139        };
    +140
    +141        let pow_verify_resp = test::call_service(
    +142            &app,
    +143            post_request!(&work, VERIFY_CAPTCHA_URL).to_request(),
    +144        )
    +145        .await;
    +146        assert_eq!(pow_verify_resp.status(), StatusCode::OK);
    +147        let client_token: ValidationToken = test::read_body_json(pow_verify_resp).await;
    +148
    +149        let mut validate_payload = VerifyCaptchaResultPayload {
    +150            token: client_token.token.clone(),
    +151            key: token_key.key.clone(),
    +152            secret: NAME.to_string(),
    +153        };
    +154
    +155        // siteverify authentication failure
    +156        bad_post_req_test(
    +157            data,
    +158            NAME,
    +159            PASSWORD,
    +160            VERIFY_TOKEN_URL,
    +161            &validate_payload,
    +162            ServiceError::WrongPassword,
    +163        )
    +164        .await;
    +165        //       let validate_client_token = test::call_service(
    +166        //            &app,
    +167        //            post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(),
    +168        //        )
    +169        //        .await;
    +170        //        assert_eq!(validate_client_token.status(), StatusCode::OK);
    +171        //        let resp: CaptchaValidateResp =
    +172        //            test::read_body_json(validate_client_token).await;
    +173        //        assert!(resp.valid);
    +174
    +175        // verifying work
    +176        validate_payload.secret = secret.clone();
    +177
    +178        let validate_client_token = test::call_service(
    +179            &app,
    +180            post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(),
    +181        )
    +182        .await;
    +183        assert_eq!(validate_client_token.status(), StatusCode::OK);
    +184        let resp: CaptchaValidateResp =
    +185            test::read_body_json(validate_client_token).await;
    +186        assert!(resp.valid);
    +187
    +188        // string not found
    +189        let string_not_found = test::call_service(
    +190            &app,
    +191            post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(),
    +192        )
    +193        .await;
    +194        let resp: CaptchaValidateResp = test::read_body_json(string_not_found).await;
    +195        assert!(!resp.valid);
    +196    }
    +197}
    \ 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 9c800154..3b438515 100644 --- a/src/mcaptcha/api/v1/routes.rs.html +++ b/src/mcaptcha/api/v1/routes.rs.html @@ -1,101 +1,49 @@ -routes.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_auth_middleware::GetLoginRoute;
    -
    -use super::account::routes::Account;
    -use super::auth::routes::Auth;
    -use super::mcaptcha::routes::Captcha;
    -use super::meta::routes::Meta;
    -use super::notifications::routes::Notifications;
    -use super::pow::routes::PoW;
    -use super::stats::routes::Stats;
    -use super::survey::routes::Survey;
    -
    -pub const ROUTES: Routes = Routes::new();
    -
    -pub struct Routes {
    -    pub auth: Auth,
    -    pub account: Account,
    -    pub captcha: Captcha,
    -    pub meta: Meta,
    -    pub pow: PoW,
    -    pub survey: Survey,
    -    pub notifications: Notifications,
    -    pub stats: Stats,
    -}
    -
    -impl Routes {
    -    const fn new() -> Routes {
    -        Routes {
    -            auth: Auth::new(),
    -            account: Account::new(),
    -            captcha: Captcha::new(),
    -            meta: Meta::new(),
    -            pow: PoW::new(),
    -            notifications: Notifications::new(),
    -            survey: Survey::new(),
    -            stats: Stats::new(),
    -        }
    -    }
    -}
    -
    -impl GetLoginRoute for Routes {
    -    fn get_login_route(&self, src: Option<&str>) -> String {
    -        self.auth.get_login_route(src)
    -    }
    -}
    -
    \ No newline at end of file +routes.rs - source

    mcaptcha/api/v1/
    routes.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_auth_middleware::GetLoginRoute;
    +7
    +8use super::account::routes::Account;
    +9use super::auth::routes::Auth;
    +10use super::mcaptcha::routes::Captcha;
    +11use super::meta::routes::Meta;
    +12use super::notifications::routes::Notifications;
    +13use super::pow::routes::PoW;
    +14use super::stats::routes::Stats;
    +15use super::survey::routes::Survey;
    +16
    +17pub const ROUTES: Routes = Routes::new();
    +18
    +19pub struct Routes {
    +20    pub auth: Auth,
    +21    pub account: Account,
    +22    pub captcha: Captcha,
    +23    pub meta: Meta,
    +24    pub pow: PoW,
    +25    pub survey: Survey,
    +26    pub notifications: Notifications,
    +27    pub stats: Stats,
    +28}
    +29
    +30impl Routes {
    +31    const fn new() -> Routes {
    +32        Routes {
    +33            auth: Auth::new(),
    +34            account: Account::new(),
    +35            captcha: Captcha::new(),
    +36            meta: Meta::new(),
    +37            pow: PoW::new(),
    +38            notifications: Notifications::new(),
    +39            survey: Survey::new(),
    +40            stats: Stats::new(),
    +41        }
    +42    }
    +43}
    +44
    +45impl GetLoginRoute for Routes {
    +46    fn get_login_route(&self, src: Option<&str>) -> String {
    +47        self.auth.get_login_route(src)
    +48    }
    +49}
    \ No newline at end of file diff --git a/src/mcaptcha/api/v1/stats.rs.html b/src/mcaptcha/api/v1/stats.rs.html index a855d6f4..14f59bb8 100644 --- a/src/mcaptcha/api/v1/stats.rs.html +++ b/src/mcaptcha/api/v1/stats.rs.html @@ -1,521 +1,259 @@ -stats.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -
    // Copyright (C) 2021  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -use actix_web::{web, HttpResponse, Responder};
    -use derive_builder::Builder;
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    -pub struct BuildDetails {
    -    pub version: &'static str,
    -    pub git_commit_hash: &'static str,
    -}
    -
    -pub mod routes {
    -    use serde::{Deserialize, Serialize};
    -
    -    #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
    -    pub struct Stats {
    -        pub percentile_benches: &'static str,
    -    }
    -
    -    impl Stats {
    -        pub const fn new() -> Self {
    -            Self {
    -                percentile_benches: "/api/v1/stats/analytics/percentile",
    -            }
    -        }
    -    }
    -}
    -
    -pub async fn percentile_bench_runner(
    -    data: &AppData,
    -    req: &PercentileReq,
    -) -> ServiceResult<PercentileResp> {
    -    let count = data.db.stats_get_num_logs_under_time(req.time).await?;
    -
    -    if count == 0 {
    -        return Ok(PercentileResp {
    -            difficulty_factor: None,
    -        });
    -    }
    -
    -    if count < 2 {
    -        return Ok(PercentileResp {
    -            difficulty_factor: None,
    -        });
    -    }
    -
    -    let location = ((count - 1) as f64 * (req.percentile / 100.00)) + 1.00;
    -    let fraction = location - location.floor();
    -
    -    if fraction > 0.00 {
    -        if let (Some(base), Some(ceiling)) = (
    -            data.db
    -                .stats_get_entry_at_location_for_time_limit_asc(
    -                    req.time,
    -                    location.floor() as u32,
    -                )
    -                .await?,
    -            data.db
    -                .stats_get_entry_at_location_for_time_limit_asc(
    -                    req.time,
    -                    location.floor() as u32 + 1,
    -                )
    -                .await?,
    -        ) {
    -            let res = base as u32 + ((ceiling - base) as f64 * fraction).floor() as u32;
    -
    -            return Ok(PercentileResp {
    -                difficulty_factor: Some(res),
    -            });
    -        }
    -    } else {
    -        if let Some(base) = data
    -            .db
    -            .stats_get_entry_at_location_for_time_limit_asc(
    -                req.time,
    -                location.floor() as u32,
    -            )
    -            .await?
    -        {
    -            let res = base as u32;
    -
    -            return Ok(PercentileResp {
    -                difficulty_factor: Some(res),
    -            });
    -        }
    -    };
    -    Ok(PercentileResp {
    -        difficulty_factor: None,
    -    })
    -}
    -
    -/// Get difficulty factor with max time limit for percentile of stats
    -#[my_codegen::post(path = "crate::V1_API_ROUTES.stats.percentile_benches")]
    -async fn percentile_benches(
    -    data: AppData,
    -    payload: web::Json<PercentileReq>,
    -) -> ServiceResult<impl Responder> {
    -    Ok(HttpResponse::Ok().json(percentile_bench_runner(&data, &payload).await?))
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    -/// Health check return datatype
    -pub struct PercentileReq {
    -    pub time: u32,
    -    pub percentile: f64,
    -}
    -
    -#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    -/// Health check return datatype
    -pub struct PercentileResp {
    -    pub difficulty_factor: Option<u32>,
    -}
    -
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    cfg.service(percentile_benches);
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use actix_web::{http::StatusCode, test, App};
    -
    -    use super::*;
    -    use crate::api::v1::services;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn stats_bench_work_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        stats_bench_work(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn stats_bench_work_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        stats_bench_work(data).await;
    -    }
    -
    -    async fn stats_bench_work(data: ArcData) {
    -        use crate::tests::*;
    -
    -        const NAME: &str = "benchstatsuesr";
    -        const EMAIL: &str = "benchstatsuesr@testadminuser.com";
    -        const PASSWORD: &str = "longpassword2";
    -
    -        const DEVICE_USER_PROVIDED: &str = "foo";
    -        const DEVICE_SOFTWARE_RECOGNISED: &str = "Foobar.v2";
    -        const THREADS: i32 = 4;
    -
    -        let data = &data;
    -        {
    -            delete_user(&data, NAME).await;
    -        }
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        // create captcha
    -        let (_, _signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let app = get_app!(data).await;
    -
    -        let page = 1;
    -        let tmp_id = uuid::Uuid::new_v4();
    -        let download_rotue = V1_API_ROUTES
    -            .survey
    -            .get_download_route(&tmp_id.to_string(), page);
    -
    -        let download_req = test::call_service(
    -            &app,
    -            test::TestRequest::get().uri(&download_rotue).to_request(),
    -        )
    -        .await;
    -        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    -
    -        data.db
    -            .analytics_create_psuedo_id_if_not_exists(&key.key)
    -            .await
    -            .unwrap();
    -
    -        let psuedo_id = data
    -            .db
    -            .analytics_get_psuedo_id_from_capmaign_id(&key.key)
    -            .await
    -            .unwrap();
    -
    -        for i in 1..6 {
    -            println!("[{i}] Saving analytics");
    -            let analytics = db_core::CreatePerformanceAnalytics {
    -                time: i,
    -                difficulty_factor: i,
    -                worker_type: "wasm".into(),
    -            };
    -            data.db.analysis_save(&key.key, &analytics).await.unwrap();
    -        }
    -
    -        let msg = PercentileReq {
    -            time: 1,
    -            percentile: 99.00,
    -        };
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let resp: PercentileResp = test::read_body_json(resp).await;
    -
    -        assert!(resp.difficulty_factor.is_none());
    -
    -        let msg = PercentileReq {
    -            time: 1,
    -            percentile: 100.00,
    -        };
    -
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let resp: PercentileResp = test::read_body_json(resp).await;
    -
    -        assert!(resp.difficulty_factor.is_none());
    -
    -        let msg = PercentileReq {
    -            time: 2,
    -            percentile: 100.00,
    -        };
    -
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let resp: PercentileResp = test::read_body_json(resp).await;
    -
    -        assert_eq!(resp.difficulty_factor.unwrap(), 2);
    -
    -        let msg = PercentileReq {
    -            time: 5,
    -            percentile: 90.00,
    -        };
    -
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let resp: PercentileResp = test::read_body_json(resp).await;
    -
    -        assert_eq!(resp.difficulty_factor.unwrap(), 4);
    -        delete_user(&data, NAME).await;
    -    }
    -}
    -
    \ No newline at end of file +stats.rs - source

    mcaptcha/api/v1/
    stats.rs

    1// Copyright (C) 2021  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5use actix_web::{web, HttpResponse, Responder};
    +6use derive_builder::Builder;
    +7use serde::{Deserialize, Serialize};
    +8
    +9use crate::errors::*;
    +10use crate::AppData;
    +11
    +12#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    +13pub struct BuildDetails {
    +14    pub version: &'static str,
    +15    pub git_commit_hash: &'static str,
    +16}
    +17
    +18pub mod routes {
    +19    use serde::{Deserialize, Serialize};
    +20
    +21    #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
    +22    pub struct Stats {
    +23        pub percentile_benches: &'static str,
    +24    }
    +25
    +26    impl Stats {
    +27        pub const fn new() -> Self {
    +28            Self {
    +29                percentile_benches: "/api/v1/stats/analytics/percentile",
    +30            }
    +31        }
    +32    }
    +33}
    +34
    +35pub async fn percentile_bench_runner(
    +36    data: &AppData,
    +37    req: &PercentileReq,
    +38) -> ServiceResult<PercentileResp> {
    +39    let count = data.db.stats_get_num_logs_under_time(req.time).await?;
    +40
    +41    if count == 0 {
    +42        return Ok(PercentileResp {
    +43            difficulty_factor: None,
    +44        });
    +45    }
    +46
    +47    if count < 2 {
    +48        return Ok(PercentileResp {
    +49            difficulty_factor: None,
    +50        });
    +51    }
    +52
    +53    let location = ((count - 1) as f64 * (req.percentile / 100.00)) + 1.00;
    +54    let fraction = location - location.floor();
    +55
    +56    if fraction > 0.00 {
    +57        if let (Some(base), Some(ceiling)) = (
    +58            data.db
    +59                .stats_get_entry_at_location_for_time_limit_asc(
    +60                    req.time,
    +61                    location.floor() as u32,
    +62                )
    +63                .await?,
    +64            data.db
    +65                .stats_get_entry_at_location_for_time_limit_asc(
    +66                    req.time,
    +67                    location.floor() as u32 + 1,
    +68                )
    +69                .await?,
    +70        ) {
    +71            let res = base as u32 + ((ceiling - base) as f64 * fraction).floor() as u32;
    +72
    +73            return Ok(PercentileResp {
    +74                difficulty_factor: Some(res),
    +75            });
    +76        }
    +77    } else {
    +78        if let Some(base) = data
    +79            .db
    +80            .stats_get_entry_at_location_for_time_limit_asc(
    +81                req.time,
    +82                location.floor() as u32,
    +83            )
    +84            .await?
    +85        {
    +86            let res = base as u32;
    +87
    +88            return Ok(PercentileResp {
    +89                difficulty_factor: Some(res),
    +90            });
    +91        }
    +92    };
    +93    Ok(PercentileResp {
    +94        difficulty_factor: None,
    +95    })
    +96}
    +97
    +98/// Get difficulty factor with max time limit for percentile of stats
    +99#[my_codegen::post(path = "crate::V1_API_ROUTES.stats.percentile_benches")]
    +100async fn percentile_benches(
    +101    data: AppData,
    +102    payload: web::Json<PercentileReq>,
    +103) -> ServiceResult<impl Responder> {
    +104    Ok(HttpResponse::Ok().json(percentile_bench_runner(&data, &payload).await?))
    +105}
    +106
    +107#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    +108/// Health check return datatype
    +109pub struct PercentileReq {
    +110    pub time: u32,
    +111    pub percentile: f64,
    +112}
    +113
    +114#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
    +115/// Health check return datatype
    +116pub struct PercentileResp {
    +117    pub difficulty_factor: Option<u32>,
    +118}
    +119
    +120pub fn services(cfg: &mut web::ServiceConfig) {
    +121    cfg.service(percentile_benches);
    +122}
    +123
    +124#[cfg(test)]
    +125mod tests {
    +126    use actix_web::{http::StatusCode, test, App};
    +127
    +128    use super::*;
    +129    use crate::api::v1::services;
    +130    use crate::*;
    +131
    +132    #[actix_rt::test]
    +133    async fn stats_bench_work_pg() {
    +134        let data = crate::tests::pg::get_data().await;
    +135        stats_bench_work(data).await;
    +136    }
    +137
    +138    #[actix_rt::test]
    +139    async fn stats_bench_work_maria() {
    +140        let data = crate::tests::maria::get_data().await;
    +141        stats_bench_work(data).await;
    +142    }
    +143
    +144    async fn stats_bench_work(data: ArcData) {
    +145        use crate::tests::*;
    +146
    +147        const NAME: &str = "benchstatsuesr";
    +148        const EMAIL: &str = "benchstatsuesr@testadminuser.com";
    +149        const PASSWORD: &str = "longpassword2";
    +150
    +151        const DEVICE_USER_PROVIDED: &str = "foo";
    +152        const DEVICE_SOFTWARE_RECOGNISED: &str = "Foobar.v2";
    +153        const THREADS: i32 = 4;
    +154
    +155        let data = &data;
    +156        {
    +157            delete_user(&data, NAME).await;
    +158        }
    +159
    +160        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +161        // create captcha
    +162        let (_, _signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    +163        let app = get_app!(data).await;
    +164
    +165        let page = 1;
    +166        let tmp_id = uuid::Uuid::new_v4();
    +167        let download_rotue = V1_API_ROUTES
    +168            .survey
    +169            .get_download_route(&tmp_id.to_string(), page);
    +170
    +171        let download_req = test::call_service(
    +172            &app,
    +173            test::TestRequest::get().uri(&download_rotue).to_request(),
    +174        )
    +175        .await;
    +176        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    +177
    +178        data.db
    +179            .analytics_create_psuedo_id_if_not_exists(&key.key)
    +180            .await
    +181            .unwrap();
    +182
    +183        let psuedo_id = data
    +184            .db
    +185            .analytics_get_psuedo_id_from_capmaign_id(&key.key)
    +186            .await
    +187            .unwrap();
    +188
    +189        for i in 1..6 {
    +190            println!("[{i}] Saving analytics");
    +191            let analytics = db_core::CreatePerformanceAnalytics {
    +192                time: i,
    +193                difficulty_factor: i,
    +194                worker_type: "wasm".into(),
    +195            };
    +196            data.db.analysis_save(&key.key, &analytics).await.unwrap();
    +197        }
    +198
    +199        let msg = PercentileReq {
    +200            time: 1,
    +201            percentile: 99.00,
    +202        };
    +203        let resp = test::call_service(
    +204            &app,
    +205            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    +206        )
    +207        .await;
    +208        assert_eq!(resp.status(), StatusCode::OK);
    +209        let resp: PercentileResp = test::read_body_json(resp).await;
    +210
    +211        assert!(resp.difficulty_factor.is_none());
    +212
    +213        let msg = PercentileReq {
    +214            time: 1,
    +215            percentile: 100.00,
    +216        };
    +217
    +218        let resp = test::call_service(
    +219            &app,
    +220            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    +221        )
    +222        .await;
    +223        assert_eq!(resp.status(), StatusCode::OK);
    +224        let resp: PercentileResp = test::read_body_json(resp).await;
    +225
    +226        assert!(resp.difficulty_factor.is_none());
    +227
    +228        let msg = PercentileReq {
    +229            time: 2,
    +230            percentile: 100.00,
    +231        };
    +232
    +233        let resp = test::call_service(
    +234            &app,
    +235            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    +236        )
    +237        .await;
    +238        assert_eq!(resp.status(), StatusCode::OK);
    +239        let resp: PercentileResp = test::read_body_json(resp).await;
    +240
    +241        assert_eq!(resp.difficulty_factor.unwrap(), 2);
    +242
    +243        let msg = PercentileReq {
    +244            time: 5,
    +245            percentile: 90.00,
    +246        };
    +247
    +248        let resp = test::call_service(
    +249            &app,
    +250            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    +251        )
    +252        .await;
    +253        assert_eq!(resp.status(), StatusCode::OK);
    +254        let resp: PercentileResp = test::read_body_json(resp).await;
    +255
    +256        assert_eq!(resp.difficulty_factor.unwrap(), 4);
    +257        delete_user(&data, NAME).await;
    +258    }
    +259}
    \ No newline at end of file diff --git a/src/mcaptcha/api/v1/survey.rs.html b/src/mcaptcha/api/v1/survey.rs.html index 5262e33d..04d497ae 100644 --- a/src/mcaptcha/api/v1/survey.rs.html +++ b/src/mcaptcha/api/v1/survey.rs.html @@ -1,513 +1,255 @@ -survey.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -
    /*
    - * Copyright (C) 2023  Aravinth Manivannan <realaravinth@batsense.net>
    - *
    - * This program is free software: you can redistribute it and/or modify
    - * it under the terms of the GNU Affero General Public License as
    - * published by the Free Software Foundation, either version 3 of the
    - * License, or (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU Affero General Public License for more details.
    - *
    - * You should have received a copy of the GNU Affero General Public License
    - * along with this program.  If not, see <https://www.gnu.org/licenses/>.
    - */
    -use actix_web::web::ServiceConfig;
    -use actix_web::{web, HttpResponse, Responder};
    -use serde::{Deserialize, Serialize};
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -pub fn services(cfg: &mut ServiceConfig) {
    -    cfg.service(download);
    -    cfg.service(secret);
    -}
    -
    -pub mod routes {
    -    pub struct Survey {
    -        pub download: &'static str,
    -        pub secret: &'static str,
    -    }
    -
    -    impl Survey {
    -        pub const fn new() -> Self {
    -            Self {
    -                download: "/api/v1/survey/takeout/{survey_id}/get",
    -                secret: "/api/v1/survey/secret",
    -            }
    -        }
    -
    -        pub fn get_download_route(&self, survey_id: &str, page: usize) -> String {
    -            format!(
    -                "{}?page={}",
    -                self.download.replace("{survey_id}", survey_id),
    -                page
    -            )
    -        }
    -    }
    -}
    -
    -#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
    -pub struct Page {
    -    pub page: usize,
    -}
    -
    -/// emits build details of the bninary
    -#[my_codegen::get(path = "crate::V1_API_ROUTES.survey.download")]
    -async fn download(
    -    data: AppData,
    -    page: web::Query<Page>,
    -    psuedo_id: web::Path<uuid::Uuid>,
    -) -> ServiceResult<impl Responder> {
    -    const LIMIT: usize = 50;
    -    let offset = LIMIT as isize * ((page.page as isize) - 1);
    -    let offset = if offset < 0 { 0 } else { offset };
    -    let psuedo_id = psuedo_id.into_inner();
    -    let campaign_id = data
    -        .db
    -        .analytics_get_capmaign_id_from_psuedo_id(&psuedo_id.to_string())
    -        .await?;
    -    let data = data
    -        .db
    -        .analytics_fetch(&campaign_id, LIMIT, offset as usize)
    -        .await?;
    -    Ok(HttpResponse::Ok().json(data))
    -}
    -
    -#[derive(Serialize, Deserialize)]
    -struct SurveySecretUpload {
    -    secret: String,
    -    auth_token: String,
    -}
    -
    -/// mCaptcha/survey upload secret route
    -#[my_codegen::post(path = "crate::V1_API_ROUTES.survey.secret")]
    -async fn secret(
    -    data: AppData,
    -    payload: web::Json<SurveySecretUpload>,
    -) -> ServiceResult<impl Responder> {
    -    match data.survey_secrets.get(&payload.auth_token) {
    -        Some(survey_instance_url) => {
    -            let payload = payload.into_inner();
    -            data.survey_secrets.set(survey_instance_url, payload.secret);
    -            data.survey_secrets.rm(&payload.auth_token);
    -            Ok(HttpResponse::Ok())
    -        }
    -        None => Err(ServiceError::WrongPassword),
    -    }
    -}
    -
    -#[cfg(test)]
    -pub mod tests {
    -    use actix_web::{http::StatusCode, test, App};
    -
    -    use super::*;
    -    use crate::api::v1::mcaptcha::get_random;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn survey_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        survey_registration_works(data.clone()).await;
    -        survey_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn survey_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        survey_registration_works(data.clone()).await;
    -        survey_works(data).await;
    -    }
    -
    -    pub async fn survey_registration_works(data: ArcData) {
    -        let data = &data;
    -        let app = get_app!(data).await;
    -
    -        let survey_instance_url = "http://survey_registration_works.survey.example.org";
    -
    -        let key = get_random(20);
    -
    -        let msg = SurveySecretUpload {
    -            auth_token: key.clone(),
    -            secret: get_random(32),
    -        };
    -
    -        // should fail with ServiceError::WrongPassword since auth token is not loaded into
    -        // keystore
    -        bad_post_req_test_no_auth(
    -            data,
    -            V1_API_ROUTES.survey.secret,
    -            &msg,
    -            errors::ServiceError::WrongPassword,
    -        )
    -        .await;
    -
    -        // load auth token into key store, should succeed
    -        data.survey_secrets
    -            .set(key.clone(), survey_instance_url.to_owned());
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.survey.secret).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        // uploaded secret must be in keystore
    -        assert_eq!(
    -            data.survey_secrets.get(survey_instance_url).unwrap(),
    -            msg.secret
    -        );
    -
    -        // should fail since mCaptcha/survey secret upload auth tokens are single-use
    -        bad_post_req_test_no_auth(
    -            data,
    -            V1_API_ROUTES.survey.secret,
    -            &msg,
    -            errors::ServiceError::WrongPassword,
    -        )
    -        .await;
    -    }
    -
    -    pub async fn survey_works(data: ArcData) {
    -        const NAME: &str = "survetuseranalytics";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL: &str = "survetuseranalytics@a.com";
    -        let data = &data;
    -
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        // create captcha
    -        let (_, _signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let app = get_app!(data).await;
    -
    -        let page = 1;
    -        let tmp_id = uuid::Uuid::new_v4();
    -        let download_rotue = V1_API_ROUTES
    -            .survey
    -            .get_download_route(&tmp_id.to_string(), page);
    -
    -        let download_req = test::call_service(
    -            &app,
    -            test::TestRequest::get().uri(&download_rotue).to_request(),
    -        )
    -        .await;
    -        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    -
    -        data.db
    -            .analytics_create_psuedo_id_if_not_exists(&key.key)
    -            .await
    -            .unwrap();
    -
    -        let psuedo_id = data
    -            .db
    -            .analytics_get_psuedo_id_from_capmaign_id(&key.key)
    -            .await
    -            .unwrap();
    -
    -        for i in 0..60 {
    -            println!("[{i}] Saving analytics");
    -            let analytics = db_core::CreatePerformanceAnalytics {
    -                time: 0,
    -                difficulty_factor: 0,
    -                worker_type: "wasm".into(),
    -            };
    -            data.db.analysis_save(&key.key, &analytics).await.unwrap();
    -        }
    -
    -        for p in 1..3 {
    -            let download_rotue = V1_API_ROUTES.survey.get_download_route(&psuedo_id, p);
    -            println!("page={p}, download={download_rotue}");
    -
    -            let download_req = test::call_service(
    -                &app,
    -                test::TestRequest::get().uri(&download_rotue).to_request(),
    -            )
    -            .await;
    -            assert_eq!(download_req.status(), StatusCode::OK);
    -            let analytics: Vec<db_core::PerformanceAnalytics> =
    -                test::read_body_json(download_req).await;
    -            if p == 1 {
    -                assert_eq!(analytics.len(), 50);
    -            } else if p == 2 {
    -                assert_eq!(analytics.len(), 10);
    -            } else {
    -                assert_eq!(analytics.len(), 0);
    -            }
    -        }
    -
    -        let download_rotue = V1_API_ROUTES.survey.get_download_route(&psuedo_id, 0);
    -        data.db
    -            .analytics_delete_all_records_for_campaign(&key.key)
    -            .await
    -            .unwrap();
    -
    -        let download_req = test::call_service(
    -            &app,
    -            test::TestRequest::get().uri(&download_rotue).to_request(),
    -        )
    -        .await;
    -        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    -    }
    -}
    -
    \ No newline at end of file +survey.rs - source

    mcaptcha/api/v1/
    survey.rs

    1/*
    +2 * Copyright (C) 2023  Aravinth Manivannan <realaravinth@batsense.net>
    +3 *
    +4 * This program is free software: you can redistribute it and/or modify
    +5 * it under the terms of the GNU Affero General Public License as
    +6 * published by the Free Software Foundation, either version 3 of the
    +7 * License, or (at your option) any later version.
    +8 *
    +9 * This program is distributed in the hope that it will be useful,
    +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
    +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +12 * GNU Affero General Public License for more details.
    +13 *
    +14 * You should have received a copy of the GNU Affero General Public License
    +15 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
    +16 */
    +17use actix_web::web::ServiceConfig;
    +18use actix_web::{web, HttpResponse, Responder};
    +19use serde::{Deserialize, Serialize};
    +20
    +21use crate::errors::*;
    +22use crate::AppData;
    +23
    +24pub fn services(cfg: &mut ServiceConfig) {
    +25    cfg.service(download);
    +26    cfg.service(secret);
    +27}
    +28
    +29pub mod routes {
    +30    pub struct Survey {
    +31        pub download: &'static str,
    +32        pub secret: &'static str,
    +33    }
    +34
    +35    impl Survey {
    +36        pub const fn new() -> Self {
    +37            Self {
    +38                download: "/api/v1/survey/takeout/{survey_id}/get",
    +39                secret: "/api/v1/survey/secret",
    +40            }
    +41        }
    +42
    +43        pub fn get_download_route(&self, survey_id: &str, page: usize) -> String {
    +44            format!(
    +45                "{}?page={}",
    +46                self.download.replace("{survey_id}", survey_id),
    +47                page
    +48            )
    +49        }
    +50    }
    +51}
    +52
    +53#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
    +54pub struct Page {
    +55    pub page: usize,
    +56}
    +57
    +58/// emits build details of the bninary
    +59#[my_codegen::get(path = "crate::V1_API_ROUTES.survey.download")]
    +60async fn download(
    +61    data: AppData,
    +62    page: web::Query<Page>,
    +63    psuedo_id: web::Path<uuid::Uuid>,
    +64) -> ServiceResult<impl Responder> {
    +65    const LIMIT: usize = 50;
    +66    let offset = LIMIT as isize * ((page.page as isize) - 1);
    +67    let offset = if offset < 0 { 0 } else { offset };
    +68    let psuedo_id = psuedo_id.into_inner();
    +69    let campaign_id = data
    +70        .db
    +71        .analytics_get_capmaign_id_from_psuedo_id(&psuedo_id.to_string())
    +72        .await?;
    +73    let data = data
    +74        .db
    +75        .analytics_fetch(&campaign_id, LIMIT, offset as usize)
    +76        .await?;
    +77    Ok(HttpResponse::Ok().json(data))
    +78}
    +79
    +80#[derive(Serialize, Deserialize)]
    +81struct SurveySecretUpload {
    +82    secret: String,
    +83    auth_token: String,
    +84}
    +85
    +86/// mCaptcha/survey upload secret route
    +87#[my_codegen::post(path = "crate::V1_API_ROUTES.survey.secret")]
    +88async fn secret(
    +89    data: AppData,
    +90    payload: web::Json<SurveySecretUpload>,
    +91) -> ServiceResult<impl Responder> {
    +92    match data.survey_secrets.get(&payload.auth_token) {
    +93        Some(survey_instance_url) => {
    +94            let payload = payload.into_inner();
    +95            data.survey_secrets.set(survey_instance_url, payload.secret);
    +96            data.survey_secrets.rm(&payload.auth_token);
    +97            Ok(HttpResponse::Ok())
    +98        }
    +99        None => Err(ServiceError::WrongPassword),
    +100    }
    +101}
    +102
    +103#[cfg(test)]
    +104pub mod tests {
    +105    use actix_web::{http::StatusCode, test, App};
    +106
    +107    use super::*;
    +108    use crate::api::v1::mcaptcha::get_random;
    +109    use crate::tests::*;
    +110    use crate::*;
    +111
    +112    #[actix_rt::test]
    +113    async fn survey_works_pg() {
    +114        let data = crate::tests::pg::get_data().await;
    +115        survey_registration_works(data.clone()).await;
    +116        survey_works(data).await;
    +117    }
    +118
    +119    #[actix_rt::test]
    +120    async fn survey_works_maria() {
    +121        let data = crate::tests::maria::get_data().await;
    +122        survey_registration_works(data.clone()).await;
    +123        survey_works(data).await;
    +124    }
    +125
    +126    pub async fn survey_registration_works(data: ArcData) {
    +127        let data = &data;
    +128        let app = get_app!(data).await;
    +129
    +130        let survey_instance_url = "http://survey_registration_works.survey.example.org";
    +131
    +132        let key = get_random(20);
    +133
    +134        let msg = SurveySecretUpload {
    +135            auth_token: key.clone(),
    +136            secret: get_random(32),
    +137        };
    +138
    +139        // should fail with ServiceError::WrongPassword since auth token is not loaded into
    +140        // keystore
    +141        bad_post_req_test_no_auth(
    +142            data,
    +143            V1_API_ROUTES.survey.secret,
    +144            &msg,
    +145            errors::ServiceError::WrongPassword,
    +146        )
    +147        .await;
    +148
    +149        // load auth token into key store, should succeed
    +150        data.survey_secrets
    +151            .set(key.clone(), survey_instance_url.to_owned());
    +152        let resp = test::call_service(
    +153            &app,
    +154            post_request!(&msg, V1_API_ROUTES.survey.secret).to_request(),
    +155        )
    +156        .await;
    +157        assert_eq!(resp.status(), StatusCode::OK);
    +158        // uploaded secret must be in keystore
    +159        assert_eq!(
    +160            data.survey_secrets.get(survey_instance_url).unwrap(),
    +161            msg.secret
    +162        );
    +163
    +164        // should fail since mCaptcha/survey secret upload auth tokens are single-use
    +165        bad_post_req_test_no_auth(
    +166            data,
    +167            V1_API_ROUTES.survey.secret,
    +168            &msg,
    +169            errors::ServiceError::WrongPassword,
    +170        )
    +171        .await;
    +172    }
    +173
    +174    pub async fn survey_works(data: ArcData) {
    +175        const NAME: &str = "survetuseranalytics";
    +176        const PASSWORD: &str = "longpassworddomain";
    +177        const EMAIL: &str = "survetuseranalytics@a.com";
    +178        let data = &data;
    +179
    +180        delete_user(data, NAME).await;
    +181
    +182        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +183        // create captcha
    +184        let (_, _signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    +185        let app = get_app!(data).await;
    +186
    +187        let page = 1;
    +188        let tmp_id = uuid::Uuid::new_v4();
    +189        let download_rotue = V1_API_ROUTES
    +190            .survey
    +191            .get_download_route(&tmp_id.to_string(), page);
    +192
    +193        let download_req = test::call_service(
    +194            &app,
    +195            test::TestRequest::get().uri(&download_rotue).to_request(),
    +196        )
    +197        .await;
    +198        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    +199
    +200        data.db
    +201            .analytics_create_psuedo_id_if_not_exists(&key.key)
    +202            .await
    +203            .unwrap();
    +204
    +205        let psuedo_id = data
    +206            .db
    +207            .analytics_get_psuedo_id_from_capmaign_id(&key.key)
    +208            .await
    +209            .unwrap();
    +210
    +211        for i in 0..60 {
    +212            println!("[{i}] Saving analytics");
    +213            let analytics = db_core::CreatePerformanceAnalytics {
    +214                time: 0,
    +215                difficulty_factor: 0,
    +216                worker_type: "wasm".into(),
    +217            };
    +218            data.db.analysis_save(&key.key, &analytics).await.unwrap();
    +219        }
    +220
    +221        for p in 1..3 {
    +222            let download_rotue = V1_API_ROUTES.survey.get_download_route(&psuedo_id, p);
    +223            println!("page={p}, download={download_rotue}");
    +224
    +225            let download_req = test::call_service(
    +226                &app,
    +227                test::TestRequest::get().uri(&download_rotue).to_request(),
    +228            )
    +229            .await;
    +230            assert_eq!(download_req.status(), StatusCode::OK);
    +231            let analytics: Vec<db_core::PerformanceAnalytics> =
    +232                test::read_body_json(download_req).await;
    +233            if p == 1 {
    +234                assert_eq!(analytics.len(), 50);
    +235            } else if p == 2 {
    +236                assert_eq!(analytics.len(), 10);
    +237            } else {
    +238                assert_eq!(analytics.len(), 0);
    +239            }
    +240        }
    +241
    +242        let download_rotue = V1_API_ROUTES.survey.get_download_route(&psuedo_id, 0);
    +243        data.db
    +244            .analytics_delete_all_records_for_campaign(&key.key)
    +245            .await
    +246            .unwrap();
    +247
    +248        let download_req = test::call_service(
    +249            &app,
    +250            test::TestRequest::get().uri(&download_rotue).to_request(),
    +251        )
    +252        .await;
    +253        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    +254    }
    +255}
    \ No newline at end of file diff --git a/src/mcaptcha/data.rs.html b/src/mcaptcha/data.rs.html index 8a306d00..19e76e2b 100644 --- a/src/mcaptcha/data.rs.html +++ b/src/mcaptcha/data.rs.html @@ -1,535 +1,265 @@ -data.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! App data: redis cache, database connections, etc.
    -use std::collections::HashMap;
    -use std::sync::Arc;
    -use std::thread;
    -use std::time::Duration;
    -
    -use actix::prelude::*;
    -use argon2_creds::{Config, ConfigBuilder, PasswordPolicy};
    -use lettre::transport::smtp::authentication::Mechanism;
    -use lettre::{
    -    transport::smtp::authentication::Credentials, AsyncSmtpTransport, Tokio1Executor,
    -};
    -use libmcaptcha::cache::hashcache::HashCache;
    -use libmcaptcha::cache::redis::RedisCache;
    -use libmcaptcha::master::redis::master::Master as RedisMaster;
    -use libmcaptcha::redis::RedisConfig;
    -use libmcaptcha::{
    -    cache::messages::VerifyCaptchaResult,
    -    cache::Save,
    -    errors::CaptchaResult,
    -    master::messages::{AddSite, RemoveCaptcha, Rename},
    -    master::{embedded::master::Master as EmbeddedMaster, Master as MasterTrait},
    -    pow::ConfigBuilder as PoWConfigBuilder,
    -    pow::PoWConfig,
    -    pow::Work,
    -    system::{System, SystemBuilder},
    -};
    -use reqwest::Client;
    -use serde::{Deserialize, Serialize};
    -use tokio::task::JoinHandle;
    -use tokio::time::sleep;
    -
    -use crate::db::{self, BoxDB};
    -use crate::errors::ServiceResult;
    -use crate::settings::Settings;
    -use crate::stats::{Dummy, Real, Stats};
    -use crate::survey::SecretsStore;
    -use crate::AppData;
    -
    -macro_rules! enum_system_actor {
    -    ($name:ident, $type:ident) => {
    -        pub async fn $name(&self, msg: $type) -> ServiceResult<()> {
    -            match self {
    -                Self::Embedded(val) => val.master.send(msg).await?.await??,
    -                Self::Redis(val) => val.master.send(msg).await?.await??,
    -            };
    -            Ok(())
    -        }
    -    };
    -}
    -
    -macro_rules! enum_system_wrapper {
    -    ($name:ident, $type:ty, $return_type:ty) => {
    -        pub async fn $name(&self, msg: $type) -> $return_type {
    -            match self {
    -                Self::Embedded(val) => val.$name(msg).await,
    -                Self::Redis(val) => val.$name(msg).await,
    -            }
    -        }
    -    };
    -}
    -
    -/// Represents mCaptcha cache and master system.
    -/// When Redis is configured, [SystemGroup::Redis] is used and
    -/// in its absence, [SystemGroup::Embedded] is used
    -pub enum SystemGroup {
    -    Embedded(System<HashCache, EmbeddedMaster>),
    -    Redis(System<RedisCache, RedisMaster>),
    -}
    -
    -#[allow(unused_doc_comments)]
    -impl SystemGroup {
    -    // TODO find a way to document these methods
    -
    -    // utility function to get difficulty factor of site `id` and cache it
    -    enum_system_wrapper!(get_pow, String, CaptchaResult<Option<PoWConfig>>);
    -
    -    // utility function to verify [Work]
    -    pub async fn verify_pow(
    -        &self,
    -        msg: Work,
    -        ip: String,
    -    ) -> CaptchaResult<(String, u32)> {
    -        match self {
    -            Self::Embedded(val) => val.verify_pow(msg, ip).await,
    -            Self::Redis(val) => val.verify_pow(msg, ip).await,
    -        }
    -    }
    -
    -    // utility function to validate verification tokens
    -    enum_system_wrapper!(
    -        validate_verification_tokens,
    -        VerifyCaptchaResult,
    -        CaptchaResult<bool>
    -    );
    -
    -    // utility function to AddSite
    -    enum_system_actor!(add_site, AddSite);
    -
    -    // utility function to rename captcha
    -    enum_system_actor!(rename, Rename);
    -
    -    // utility function to remove captcha
    -    enum_system_actor!(remove, RemoveCaptcha);
    -
    -    fn new_system<A: Save, B: MasterTrait>(
    -        s: &Settings,
    -        m: Addr<B>,
    -        c: Addr<A>,
    -    ) -> System<A, B> {
    -        let pow = PoWConfigBuilder::default()
    -            .salt(s.captcha.salt.clone())
    -            .build()
    -            .unwrap();
    -
    -        let runners = if let Some(runners) = s.captcha.runners {
    -            runners
    -        } else {
    -            num_cpus::get_physical()
    -        };
    -        SystemBuilder::default()
    -            .pow(pow)
    -            .cache(c)
    -            .master(m)
    -            .runners(runners)
    -            .queue_length(s.captcha.queue_length)
    -            .build()
    -    }
    -
    -    // read settings, if Redis is configured then produce a Redis mCaptcha cache
    -    // based SystemGroup
    -    async fn new(s: &Settings) -> Self {
    -        match &s.redis {
    -            Some(val) => {
    -                let master = RedisMaster::new(RedisConfig::Single(val.url.clone()))
    -                    .await
    -                    .unwrap()
    -                    .start();
    -                let cache = RedisCache::new(RedisConfig::Single(val.url.clone()))
    -                    .await
    -                    .unwrap()
    -                    .start();
    -                let captcha = Self::new_system(s, master, cache);
    -
    -                SystemGroup::Redis(captcha)
    -            }
    -            None => {
    -                let master = EmbeddedMaster::new(s.captcha.gc).start();
    -                let cache = HashCache::default().start();
    -                let captcha = Self::new_system(s, master, cache);
    -
    -                SystemGroup::Embedded(captcha)
    -            }
    -        }
    -    }
    -}
    -
    -/// App data
    -pub struct Data {
    -    /// database ops defined by db crates
    -    pub db: BoxDB,
    -    /// credential management configuration
    -    pub creds: Config,
    -    /// mCaptcha system: Redis cache, etc.
    -    pub captcha: SystemGroup,
    -    /// email client
    -    pub mailer: Option<Mailer>,
    -    /// app settings
    -    pub settings: Settings,
    -    /// stats recorder
    -    pub stats: Box<dyn Stats>,
    -    /// survey secret store
    -    pub survey_secrets: SecretsStore,
    -}
    -
    -impl Data {
    -    pub fn get_creds() -> Config {
    -        ConfigBuilder::default()
    -            .username_case_mapped(true)
    -            .profanity(true)
    -            .blacklist(true)
    -            .password_policy(PasswordPolicy::default())
    -            .build()
    -            .unwrap()
    -    }
    -    #[cfg(not(tarpaulin_include))]
    -    /// create new instance of app data
    -    pub async fn new(s: &Settings, survey_secrets: SecretsStore) -> Arc<Self> {
    -        let creds = Self::get_creds();
    -        let c = creds.clone();
    -
    -        #[allow(unused_variables)]
    -        let init = thread::spawn(move || {
    -            log::info!("Initializing credential manager");
    -            c.init();
    -            log::info!("Initialized credential manager");
    -        });
    -
    -        let db = match s.database.database_type {
    -            crate::settings::DBType::Maria => db::maria::get_data(Some(s.clone())).await,
    -            crate::settings::DBType::Postgres => db::pg::get_data(Some(s.clone())).await,
    -        };
    -
    -        let stats: Box<dyn Stats> = if s.captcha.enable_stats {
    -            Box::<Real>::default()
    -        } else {
    -            Box::<Dummy>::default()
    -        };
    -
    -        let data = Data {
    -            creds,
    -            db,
    -            captcha: SystemGroup::new(s).await,
    -            mailer: Self::get_mailer(s),
    -            settings: s.clone(),
    -            stats,
    -            survey_secrets,
    -        };
    -
    -        #[cfg(not(debug_assertions))]
    -        init.join().unwrap();
    -
    -        Arc::new(data)
    -    }
    -
    -    fn get_mailer(s: &Settings) -> Option<Mailer> {
    -        if let Some(smtp) = s.smtp.as_ref() {
    -            let creds =
    -                Credentials::new(smtp.username.to_string(), smtp.password.to_string()); // "smtp_username".to_string(), "smtp_password".to_string());
    -
    -            let mailer: Mailer =
    -                AsyncSmtpTransport::<Tokio1Executor>::builder_dangerous(&smtp.url)
    -                    .port(smtp.port)
    -                    .credentials(creds)
    -                    .authentication(vec![
    -                        Mechanism::Login,
    -                        Mechanism::Xoauth2,
    -                        Mechanism::Plain,
    -                    ])
    -                    .build();
    -
    -            //            let mailer: Mailer = AsyncSmtpTransport::<Tokio1Executor>::relay(&smtp.url) //"smtp.gmail.com")
    -            //                .unwrap()
    -            //                .credentials(creds)
    -            //                .build();
    -            Some(mailer)
    -        } else {
    -            None
    -        }
    -    }
    -
    -    async fn upload_survey_job(&self) -> ServiceResult<()> {
    -        unimplemented!()
    -    }
    -    async fn register_survey(&self) -> ServiceResult<()> {
    -        unimplemented!()
    -    }
    -}
    -
    -/// Mailer data type AsyncSmtpTransport<Tokio1Executor>
    -pub type Mailer = AsyncSmtpTransport<Tokio1Executor>;
    -
    \ No newline at end of file +data.rs - source

    mcaptcha/
    data.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! App data: redis cache, database connections, etc.
    +7use std::collections::HashMap;
    +8use std::sync::Arc;
    +9use std::thread;
    +10use std::time::Duration;
    +11
    +12use actix::prelude::*;
    +13use argon2_creds::{Config, ConfigBuilder, PasswordPolicy};
    +14use lettre::transport::smtp::authentication::Mechanism;
    +15use lettre::{
    +16    transport::smtp::authentication::Credentials, AsyncSmtpTransport, Tokio1Executor,
    +17};
    +18use libmcaptcha::cache::hashcache::HashCache;
    +19use libmcaptcha::cache::redis::RedisCache;
    +20use libmcaptcha::master::redis::master::Master as RedisMaster;
    +21use libmcaptcha::redis::RedisConfig;
    +22use libmcaptcha::{
    +23    cache::messages::VerifyCaptchaResult,
    +24    cache::Save,
    +25    errors::CaptchaResult,
    +26    master::messages::{AddSite, RemoveCaptcha, Rename},
    +27    master::{embedded::master::Master as EmbeddedMaster, Master as MasterTrait},
    +28    pow::ConfigBuilder as PoWConfigBuilder,
    +29    pow::PoWConfig,
    +30    pow::Work,
    +31    system::{System, SystemBuilder},
    +32};
    +33use reqwest::Client;
    +34use serde::{Deserialize, Serialize};
    +35use tokio::task::JoinHandle;
    +36use tokio::time::sleep;
    +37
    +38use crate::db::{self, BoxDB};
    +39use crate::errors::ServiceResult;
    +40use crate::settings::Settings;
    +41use crate::stats::{Dummy, Real, Stats};
    +42use crate::survey::SecretsStore;
    +43use crate::AppData;
    +44
    +45macro_rules! enum_system_actor {
    +46    ($name:ident, $type:ident) => {
    +47        pub async fn $name(&self, msg: $type) -> ServiceResult<()> {
    +48            match self {
    +49                Self::Embedded(val) => val.master.send(msg).await?.await??,
    +50                Self::Redis(val) => val.master.send(msg).await?.await??,
    +51            };
    +52            Ok(())
    +53        }
    +54    };
    +55}
    +56
    +57macro_rules! enum_system_wrapper {
    +58    ($name:ident, $type:ty, $return_type:ty) => {
    +59        pub async fn $name(&self, msg: $type) -> $return_type {
    +60            match self {
    +61                Self::Embedded(val) => val.$name(msg).await,
    +62                Self::Redis(val) => val.$name(msg).await,
    +63            }
    +64        }
    +65    };
    +66}
    +67
    +68/// Represents mCaptcha cache and master system.
    +69/// When Redis is configured, [SystemGroup::Redis] is used and
    +70/// in its absence, [SystemGroup::Embedded] is used
    +71pub enum SystemGroup {
    +72    Embedded(System<HashCache, EmbeddedMaster>),
    +73    Redis(System<RedisCache, RedisMaster>),
    +74}
    +75
    +76#[allow(unused_doc_comments)]
    +77impl SystemGroup {
    +78    // TODO find a way to document these methods
    +79
    +80    // utility function to get difficulty factor of site `id` and cache it
    +81    enum_system_wrapper!(get_pow, String, CaptchaResult<Option<PoWConfig>>);
    +82
    +83    // utility function to verify [Work]
    +84    pub async fn verify_pow(
    +85        &self,
    +86        msg: Work,
    +87        ip: String,
    +88    ) -> CaptchaResult<(String, u32)> {
    +89        match self {
    +90            Self::Embedded(val) => val.verify_pow(msg, ip).await,
    +91            Self::Redis(val) => val.verify_pow(msg, ip).await,
    +92        }
    +93    }
    +94
    +95    // utility function to validate verification tokens
    +96    enum_system_wrapper!(
    +97        validate_verification_tokens,
    +98        VerifyCaptchaResult,
    +99        CaptchaResult<bool>
    +100    );
    +101
    +102    // utility function to AddSite
    +103    enum_system_actor!(add_site, AddSite);
    +104
    +105    // utility function to rename captcha
    +106    enum_system_actor!(rename, Rename);
    +107
    +108    // utility function to remove captcha
    +109    enum_system_actor!(remove, RemoveCaptcha);
    +110
    +111    fn new_system<A: Save, B: MasterTrait>(
    +112        s: &Settings,
    +113        m: Addr<B>,
    +114        c: Addr<A>,
    +115    ) -> System<A, B> {
    +116        let pow = PoWConfigBuilder::default()
    +117            .salt(s.captcha.salt.clone())
    +118            .build()
    +119            .unwrap();
    +120
    +121        let runners = if let Some(runners) = s.captcha.runners {
    +122            runners
    +123        } else {
    +124            num_cpus::get_physical()
    +125        };
    +126        SystemBuilder::default()
    +127            .pow(pow)
    +128            .cache(c)
    +129            .master(m)
    +130            .runners(runners)
    +131            .queue_length(s.captcha.queue_length)
    +132            .build()
    +133    }
    +134
    +135    // read settings, if Redis is configured then produce a Redis mCaptcha cache
    +136    // based SystemGroup
    +137    async fn new(s: &Settings) -> Self {
    +138        match &s.redis {
    +139            Some(val) => {
    +140                let master = RedisMaster::new(RedisConfig::Single(val.url.clone()))
    +141                    .await
    +142                    .unwrap()
    +143                    .start();
    +144                let cache = RedisCache::new(RedisConfig::Single(val.url.clone()))
    +145                    .await
    +146                    .unwrap()
    +147                    .start();
    +148                let captcha = Self::new_system(s, master, cache);
    +149
    +150                SystemGroup::Redis(captcha)
    +151            }
    +152            None => {
    +153                let master = EmbeddedMaster::new(s.captcha.gc).start();
    +154                let cache = HashCache::default().start();
    +155                let captcha = Self::new_system(s, master, cache);
    +156
    +157                SystemGroup::Embedded(captcha)
    +158            }
    +159        }
    +160    }
    +161}
    +162
    +163/// App data
    +164pub struct Data {
    +165    /// database ops defined by db crates
    +166    pub db: BoxDB,
    +167    /// credential management configuration
    +168    pub creds: Config,
    +169    /// mCaptcha system: Redis cache, etc.
    +170    pub captcha: SystemGroup,
    +171    /// email client
    +172    pub mailer: Option<Mailer>,
    +173    /// app settings
    +174    pub settings: Settings,
    +175    /// stats recorder
    +176    pub stats: Box<dyn Stats>,
    +177    /// survey secret store
    +178    pub survey_secrets: SecretsStore,
    +179}
    +180
    +181impl Data {
    +182    pub fn get_creds() -> Config {
    +183        ConfigBuilder::default()
    +184            .username_case_mapped(true)
    +185            .profanity(true)
    +186            .blacklist(true)
    +187            .password_policy(PasswordPolicy::default())
    +188            .build()
    +189            .unwrap()
    +190    }
    +191    /// create new instance of app data
    +192    pub async fn new(s: &Settings, survey_secrets: SecretsStore) -> Arc<Self> {
    +193        let creds = Self::get_creds();
    +194        let c = creds.clone();
    +195
    +196        #[allow(unused_variables)]
    +197        let init = thread::spawn(move || {
    +198            log::info!("Initializing credential manager");
    +199            c.init();
    +200            log::info!("Initialized credential manager");
    +201        });
    +202
    +203        let db = match s.database.database_type {
    +204            crate::settings::DBType::Maria => db::maria::get_data(Some(s.clone())).await,
    +205            crate::settings::DBType::Postgres => db::pg::get_data(Some(s.clone())).await,
    +206        };
    +207
    +208        let stats: Box<dyn Stats> = if s.captcha.enable_stats {
    +209            Box::<Real>::default()
    +210        } else {
    +211            Box::<Dummy>::default()
    +212        };
    +213
    +214        let data = Data {
    +215            creds,
    +216            db,
    +217            captcha: SystemGroup::new(s).await,
    +218            mailer: Self::get_mailer(s),
    +219            settings: s.clone(),
    +220            stats,
    +221            survey_secrets,
    +222        };
    +223
    +224        #[cfg(not(debug_assertions))]
    +225        init.join().unwrap();
    +226
    +227        Arc::new(data)
    +228    }
    +229
    +230    fn get_mailer(s: &Settings) -> Option<Mailer> {
    +231        if let Some(smtp) = s.smtp.as_ref() {
    +232            let creds =
    +233                Credentials::new(smtp.username.to_string(), smtp.password.to_string()); // "smtp_username".to_string(), "smtp_password".to_string());
    +234
    +235            let mailer: Mailer =
    +236                AsyncSmtpTransport::<Tokio1Executor>::builder_dangerous(&smtp.url)
    +237                    .port(smtp.port)
    +238                    .credentials(creds)
    +239                    .authentication(vec![
    +240                        Mechanism::Login,
    +241                        Mechanism::Xoauth2,
    +242                        Mechanism::Plain,
    +243                    ])
    +244                    .build();
    +245
    +246            //            let mailer: Mailer = AsyncSmtpTransport::<Tokio1Executor>::relay(&smtp.url) //"smtp.gmail.com")
    +247            //                .unwrap()
    +248            //                .credentials(creds)
    +249            //                .build();
    +250            Some(mailer)
    +251        } else {
    +252            None
    +253        }
    +254    }
    +255
    +256    async fn upload_survey_job(&self) -> ServiceResult<()> {
    +257        unimplemented!()
    +258    }
    +259    async fn register_survey(&self) -> ServiceResult<()> {
    +260        unimplemented!()
    +261    }
    +262}
    +263
    +264/// Mailer data type AsyncSmtpTransport<Tokio1Executor>
    +265pub 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 a854b6d8..bbc060ae 100644 --- a/src/mcaptcha/date.rs.html +++ b/src/mcaptcha/date.rs.html @@ -1,221 +1,109 @@ -date.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::fmt::Debug;
    -
    -use sqlx::types::time::OffsetDateTime;
    -
    -#[derive(Clone)]
    -pub struct Date {
    -    pub time: OffsetDateTime,
    -}
    -
    -impl Debug for Date {
    -    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    -        f.debug_struct("Date")
    -            .field("time", &self.print_date())
    -            .finish()
    -    }
    -}
    -
    -pub const MINUTE: i64 = 60;
    -pub const HOUR: i64 = MINUTE * 60;
    -pub const DAY: i64 = HOUR * 24;
    -pub const WEEK: i64 = DAY * 7;
    -
    -impl Date {
    -    pub fn format(date: &OffsetDateTime) -> String {
    -        let timestamp = date.unix_timestamp();
    -        let now = OffsetDateTime::now_utc().unix_timestamp();
    -
    -        let difference = now - timestamp;
    -
    -        if difference >= 3 * WEEK {
    -            format!("{}{}{}", date.year(), date.month(), date.date())
    -        } else if (DAY..(3 * WEEK)).contains(&difference) {
    -            format!("{} days ago", date.hour())
    -        } else if (HOUR..DAY).contains(&difference) {
    -            format!("{} hours ago", date.hour())
    -        } else if (MINUTE..HOUR).contains(&difference) {
    -            format!("{} minutes ago", date.minute())
    -        } else {
    -            format!("{} seconds ago", date.second())
    -        }
    -    }
    -
    -    /// print relative time from date
    -    pub fn print_date(&self) -> String {
    -        Self::format(&self.time)
    -    }
    -
    -    /// print date
    -    pub fn date(&self) -> String {
    -        format!(
    -            "{}{}{}",
    -            self.time.year(),
    -            self.time.month(),
    -            self.time.date()
    -        )
    -    }
    -
    -    pub fn new(unix: i64) -> Self {
    -        Self {
    -            time: OffsetDateTime::from_unix_timestamp(unix).unwrap(),
    -        }
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use super::*;
    -
    -    #[test]
    -    fn print_date_test() {
    -        let mut n = Date {
    -            time: OffsetDateTime::now_utc(),
    -        };
    -
    -        let timestamp = n.time.unix_timestamp();
    -        println!("timestamp: {}", timestamp);
    -
    -        // seconds test
    -        assert!(n.print_date().contains("seconds ago"));
    -        n.time = OffsetDateTime::from_unix_timestamp(timestamp - 5).unwrap();
    -        assert!(n.print_date().contains("seconds ago"));
    -
    -        // minutes test
    -        n.time = OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 2).unwrap();
    -        assert!(n.print_date().contains("minutes ago"));
    -        n.time = OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 56).unwrap();
    -        assert!(n.print_date().contains("minutes ago"));
    -
    -        // hours test
    -        n.time = OffsetDateTime::from_unix_timestamp(timestamp - HOUR).unwrap();
    -        assert!(n.print_date().contains("hours ago"));
    -        n.time = OffsetDateTime::from_unix_timestamp(timestamp - HOUR * 23).unwrap();
    -        assert!(n.print_date().contains("hours ago"));
    -
    -        // days test
    -        n.time = OffsetDateTime::from_unix_timestamp(timestamp - 2 * WEEK).unwrap();
    -        assert!(n.print_date().contains("days ago"));
    -
    -        // date test
    -        n.time = OffsetDateTime::from_unix_timestamp(timestamp - 6 * WEEK).unwrap();
    -        let date = format!("{}{}{}", n.time.year(), n.time.month(), n.time.date());
    -        assert!(n.print_date().contains(&date))
    -    }
    -}
    -
    \ No newline at end of file +date.rs - source

    mcaptcha/
    date.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::fmt::Debug;
    +7
    +8use sqlx::types::time::OffsetDateTime;
    +9
    +10#[derive(Clone)]
    +11pub struct Date {
    +12    pub time: OffsetDateTime,
    +13}
    +14
    +15impl Debug for Date {
    +16    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    +17        f.debug_struct("Date")
    +18            .field("time", &self.print_date())
    +19            .finish()
    +20    }
    +21}
    +22
    +23pub const MINUTE: i64 = 60;
    +24pub const HOUR: i64 = MINUTE * 60;
    +25pub const DAY: i64 = HOUR * 24;
    +26pub const WEEK: i64 = DAY * 7;
    +27
    +28impl Date {
    +29    pub fn format(date: &OffsetDateTime) -> String {
    +30        let timestamp = date.unix_timestamp();
    +31        let now = OffsetDateTime::now_utc().unix_timestamp();
    +32
    +33        let difference = now - timestamp;
    +34
    +35        if difference >= 3 * WEEK {
    +36            format!("{}{}{}", date.year(), date.month(), date.date())
    +37        } else if (DAY..(3 * WEEK)).contains(&difference) {
    +38            format!("{} days ago", date.hour())
    +39        } else if (HOUR..DAY).contains(&difference) {
    +40            format!("{} hours ago", date.hour())
    +41        } else if (MINUTE..HOUR).contains(&difference) {
    +42            format!("{} minutes ago", date.minute())
    +43        } else {
    +44            format!("{} seconds ago", date.second())
    +45        }
    +46    }
    +47
    +48    /// print relative time from date
    +49    pub fn print_date(&self) -> String {
    +50        Self::format(&self.time)
    +51    }
    +52
    +53    /// print date
    +54    pub fn date(&self) -> String {
    +55        format!(
    +56            "{}{}{}",
    +57            self.time.year(),
    +58            self.time.month(),
    +59            self.time.date()
    +60        )
    +61    }
    +62
    +63    pub fn new(unix: i64) -> Self {
    +64        Self {
    +65            time: OffsetDateTime::from_unix_timestamp(unix).unwrap(),
    +66        }
    +67    }
    +68}
    +69
    +70#[cfg(test)]
    +71mod tests {
    +72    use super::*;
    +73
    +74    #[test]
    +75    fn print_date_test() {
    +76        let mut n = Date {
    +77            time: OffsetDateTime::now_utc(),
    +78        };
    +79
    +80        let timestamp = n.time.unix_timestamp();
    +81        println!("timestamp: {}", timestamp);
    +82
    +83        // seconds test
    +84        assert!(n.print_date().contains("seconds ago"));
    +85        n.time = OffsetDateTime::from_unix_timestamp(timestamp - 5).unwrap();
    +86        assert!(n.print_date().contains("seconds ago"));
    +87
    +88        // minutes test
    +89        n.time = OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 2).unwrap();
    +90        assert!(n.print_date().contains("minutes ago"));
    +91        n.time = OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 56).unwrap();
    +92        assert!(n.print_date().contains("minutes ago"));
    +93
    +94        // hours test
    +95        n.time = OffsetDateTime::from_unix_timestamp(timestamp - HOUR).unwrap();
    +96        assert!(n.print_date().contains("hours ago"));
    +97        n.time = OffsetDateTime::from_unix_timestamp(timestamp - HOUR * 23).unwrap();
    +98        assert!(n.print_date().contains("hours ago"));
    +99
    +100        // days test
    +101        n.time = OffsetDateTime::from_unix_timestamp(timestamp - 2 * WEEK).unwrap();
    +102        assert!(n.print_date().contains("days ago"));
    +103
    +104        // date test
    +105        n.time = OffsetDateTime::from_unix_timestamp(timestamp - 6 * WEEK).unwrap();
    +106        let date = format!("{}{}{}", n.time.year(), n.time.month(), n.time.date());
    +107        assert!(n.print_date().contains(&date))
    +108    }
    +109}
    \ No newline at end of file diff --git a/src/mcaptcha/db.rs.html b/src/mcaptcha/db.rs.html index 685f9266..2f734b70 100644 --- a/src/mcaptcha/db.rs.html +++ b/src/mcaptcha/db.rs.html @@ -1,101 +1,49 @@ -db.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use crate::settings::Settings;
    -use db_core::prelude::*;
    -
    -pub type BoxDB = Box<dyn MCDatabase>;
    -
    -pub mod pg {
    -    use super::*;
    -    use db_sqlx_postgres::{ConnectionOptions, Fresh};
    -    use sqlx::postgres::PgPoolOptions;
    -
    -    pub async fn get_data(settings: Option<Settings>) -> BoxDB {
    -        let settings = settings.unwrap_or_else(|| Settings::new().unwrap());
    -        let pool = settings.database.pool;
    -        let pool_options = PgPoolOptions::new().max_connections(pool);
    -        let connection_options = ConnectionOptions::Fresh(Fresh {
    -            pool_options,
    -            url: settings.database.url.clone(),
    -            disable_logging: !settings.debug,
    -        });
    -        let db = connection_options.connect().await.unwrap();
    -        db.migrate().await.unwrap();
    -        Box::new(db)
    -    }
    -}
    -
    -pub mod maria {
    -    use super::*;
    -    use db_sqlx_maria::{ConnectionOptions, Fresh};
    -    use sqlx::mysql::MySqlPoolOptions;
    -
    -    pub async fn get_data(settings: Option<Settings>) -> BoxDB {
    -        let settings = settings.unwrap_or_else(|| Settings::new().unwrap());
    -        let pool = settings.database.pool;
    -        let pool_options = MySqlPoolOptions::new().max_connections(pool);
    -        let connection_options = ConnectionOptions::Fresh(Fresh {
    -            pool_options,
    -            url: settings.database.url.clone(),
    -            disable_logging: !settings.debug,
    -        });
    -        let db = connection_options.connect().await.unwrap();
    -        db.migrate().await.unwrap();
    -        Box::new(db)
    -    }
    -}
    -
    \ No newline at end of file +db.rs - source

    mcaptcha/
    db.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use crate::settings::Settings;
    +7use db_core::prelude::*;
    +8
    +9pub type BoxDB = Box<dyn MCDatabase>;
    +10
    +11pub mod pg {
    +12    use super::*;
    +13    use db_sqlx_postgres::{ConnectionOptions, Fresh};
    +14    use sqlx::postgres::PgPoolOptions;
    +15
    +16    pub async fn get_data(settings: Option<Settings>) -> BoxDB {
    +17        let settings = settings.unwrap_or_else(|| Settings::new().unwrap());
    +18        let pool = settings.database.pool;
    +19        let pool_options = PgPoolOptions::new().max_connections(pool);
    +20        let connection_options = ConnectionOptions::Fresh(Fresh {
    +21            pool_options,
    +22            url: settings.database.url.clone(),
    +23            disable_logging: !settings.debug,
    +24        });
    +25        let db = connection_options.connect().await.unwrap();
    +26        db.migrate().await.unwrap();
    +27        Box::new(db)
    +28    }
    +29}
    +30
    +31pub mod maria {
    +32    use super::*;
    +33    use db_sqlx_maria::{ConnectionOptions, Fresh};
    +34    use sqlx::mysql::MySqlPoolOptions;
    +35
    +36    pub async fn get_data(settings: Option<Settings>) -> BoxDB {
    +37        let settings = settings.unwrap_or_else(|| Settings::new().unwrap());
    +38        let pool = settings.database.pool;
    +39        let pool_options = MySqlPoolOptions::new().max_connections(pool);
    +40        let connection_options = ConnectionOptions::Fresh(Fresh {
    +41            pool_options,
    +42            url: settings.database.url.clone(),
    +43            disable_logging: !settings.debug,
    +44        });
    +45        let db = connection_options.connect().await.unwrap();
    +46        db.migrate().await.unwrap();
    +47        Box::new(db)
    +48    }
    +49}
    \ No newline at end of file diff --git a/src/mcaptcha/demo.rs.html b/src/mcaptcha/demo.rs.html index c041fc13..ca49e7d3 100644 --- a/src/mcaptcha/demo.rs.html +++ b/src/mcaptcha/demo.rs.html @@ -1,393 +1,195 @@ -demo.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::time::Duration;
    -//use std::sync::atomicBool
    -
    -use actix::clock::sleep;
    -use actix::spawn;
    -use tokio::sync::oneshot::{channel, error::TryRecvError, Receiver, Sender};
    -use tokio::task::JoinHandle;
    -
    -use crate::api::v1::account::delete::runners::delete_user;
    -use crate::api::v1::account::{username::runners::username_exists, AccountCheckPayload};
    -use crate::api::v1::auth::runners::{register_runner, Register};
    -use crate::*;
    -
    -use errors::*;
    -
    -/// Demo username
    -pub const DEMO_USER: &str = "aaronsw";
    -/// Demo password
    -pub const DEMO_PASSWORD: &str = "password";
    -
    -pub struct DemoUser {
    -    tx: Sender<()>,
    -}
    -
    -impl DemoUser {
    -    pub async fn spawn(
    -        data: AppData,
    -        duration: u32,
    -    ) -> ServiceResult<(Self, JoinHandle<()>)> {
    -        let (tx, rx) = channel();
    -        let handle = Self::run(data, duration, rx).await?;
    -        let d = Self { tx };
    -
    -        Ok((d, handle))
    -    }
    -
    -    #[allow(dead_code)]
    -    pub fn abort(mut self) {
    -        self.tx.send(());
    -    }
    -
    -    /// register demo user runner
    -    async fn register_demo_user(data: &AppData) -> ServiceResult<()> {
    -        let user_exists_payload = AccountCheckPayload {
    -            val: DEMO_USER.into(),
    -        };
    -
    -        if !username_exists(&user_exists_payload, data).await?.exists {
    -            let register_payload = Register {
    -                username: DEMO_USER.into(),
    -                password: DEMO_PASSWORD.into(),
    -                confirm_password: DEMO_PASSWORD.into(),
    -                email: None,
    -            };
    -
    -            log::info!("Registering demo user");
    -            match register_runner(&register_payload, data).await {
    -                Err(ServiceError::UsernameTaken) | Ok(_) => Ok(()),
    -                Err(e) => Err(e),
    -            }
    -        } else {
    -            Ok(())
    -        }
    -    }
    -
    -    async fn delete_demo_user(data: &AppData) -> ServiceResult<()> {
    -        log::info!("Deleting demo user");
    -        delete_user(DEMO_USER, data).await?;
    -        Ok(())
    -    }
    -
    -    pub async fn run(
    -        data: AppData,
    -        duration: u32,
    -        mut rx: Receiver<()>,
    -    ) -> ServiceResult<JoinHandle<()>> {
    -        Self::register_demo_user(&data).await?;
    -
    -        fn can_run(rx: &mut Receiver<()>) -> bool {
    -            match rx.try_recv() {
    -                Err(TryRecvError::Empty) => true,
    -                _ => false,
    -            }
    -        }
    -
    -        let mut exit = false;
    -        let fut = async move {
    -            loop {
    -                if exit {
    -                    break;
    -                }
    -                for _ in 0..duration {
    -                    if can_run(&mut rx) {
    -                        sleep(Duration::new(1, 0)).await;
    -                        continue;
    -                    } else {
    -                        exit = true;
    -                        break;
    -                    }
    -                }
    -
    -                if let Err(e) = Self::delete_demo_user(&data).await {
    -                    log::error!("Error while deleting demo user: {:?}", e);
    -                }
    -
    -                if let Err(e) = Self::register_demo_user(&data).await {
    -                    log::error!("Error while registering demo user: {:?}", e);
    -                }
    -            }
    -        };
    -        let handle = spawn(fut);
    -        Ok(handle)
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -
    -    use actix_web::test;
    -    use libmcaptcha::defense::Level;
    -
    -    use super::*;
    -    use crate::tests::*;
    -
    -    const DURATION: u64 = 25;
    -
    -    #[actix_rt::test]
    -    async fn demo_account_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        demo_account_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn demo_account_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        demo_account_works(data).await;
    -    }
    -
    -    async fn demo_account_works(data_inner: ArcData) {
    -        let data_inner = &data_inner;
    -        let data = AppData::new(data_inner.clone());
    -        crate::tests::delete_user(data_inner, DEMO_USER).await;
    -        let duration = Duration::from_secs(DURATION);
    -
    -        // register works
    -        DemoUser::register_demo_user(&data).await.unwrap();
    -        let payload = AccountCheckPayload {
    -            val: DEMO_USER.into(),
    -        };
    -        assert!(username_exists(&payload, &data).await.unwrap().exists);
    -        signin(data_inner, DEMO_USER, DEMO_PASSWORD).await;
    -
    -        // deletion works
    -        assert!(DemoUser::delete_demo_user(&data).await.is_ok());
    -        assert!(!username_exists(&payload, &data).await.unwrap().exists);
    -
    -        // test the runner
    -        let user = DemoUser::spawn(data, DURATION as u32).await.unwrap();
    -        let (_, signin_resp, token_key) =
    -            add_levels_util(data_inner, DEMO_USER, DEMO_PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -        let app = get_app!(data_inner).await;
    -
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&token_key, crate::V1_API_ROUTES.captcha.get)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let res_levels: Vec<Level> = test::read_body_json(resp).await;
    -        assert!(!res_levels.is_empty());
    -
    -        sleep(Duration::from_secs(DURATION * 2)).await;
    -
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&token_key, crate::V1_API_ROUTES.captcha.get)
    -                .cookie(cookies)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let res_levels: Vec<Level> = test::read_body_json(resp).await;
    -        assert!(res_levels.is_empty());
    -        user.0.abort();
    -        user.1.await.unwrap();
    -    }
    -}
    -
    \ No newline at end of file +demo.rs - source

    mcaptcha/
    demo.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::time::Duration;
    +7//use std::sync::atomicBool
    +8
    +9use actix::clock::sleep;
    +10use actix::spawn;
    +11use tokio::sync::oneshot::{channel, error::TryRecvError, Receiver, Sender};
    +12use tokio::task::JoinHandle;
    +13
    +14use crate::api::v1::account::delete::runners::delete_user;
    +15use crate::api::v1::account::{username::runners::username_exists, AccountCheckPayload};
    +16use crate::api::v1::auth::runners::{register_runner, Register};
    +17use crate::*;
    +18
    +19use errors::*;
    +20
    +21/// Demo username
    +22pub const DEMO_USER: &str = "aaronsw";
    +23/// Demo password
    +24pub const DEMO_PASSWORD: &str = "password";
    +25
    +26pub struct DemoUser {
    +27    tx: Sender<()>,
    +28}
    +29
    +30impl DemoUser {
    +31    pub async fn spawn(
    +32        data: AppData,
    +33        duration: u32,
    +34    ) -> ServiceResult<(Self, JoinHandle<()>)> {
    +35        let (tx, rx) = channel();
    +36        let handle = Self::run(data, duration, rx).await?;
    +37        let d = Self { tx };
    +38
    +39        Ok((d, handle))
    +40    }
    +41
    +42    #[allow(dead_code)]
    +43    pub fn abort(mut self) {
    +44        self.tx.send(());
    +45    }
    +46
    +47    /// register demo user runner
    +48    async fn register_demo_user(data: &AppData) -> ServiceResult<()> {
    +49        let user_exists_payload = AccountCheckPayload {
    +50            val: DEMO_USER.into(),
    +51        };
    +52
    +53        if !username_exists(&user_exists_payload, data).await?.exists {
    +54            let register_payload = Register {
    +55                username: DEMO_USER.into(),
    +56                password: DEMO_PASSWORD.into(),
    +57                confirm_password: DEMO_PASSWORD.into(),
    +58                email: None,
    +59            };
    +60
    +61            log::info!("Registering demo user");
    +62            match register_runner(&register_payload, data).await {
    +63                Err(ServiceError::UsernameTaken) | Ok(_) => Ok(()),
    +64                Err(e) => Err(e),
    +65            }
    +66        } else {
    +67            Ok(())
    +68        }
    +69    }
    +70
    +71    async fn delete_demo_user(data: &AppData) -> ServiceResult<()> {
    +72        log::info!("Deleting demo user");
    +73        delete_user(DEMO_USER, data).await?;
    +74        Ok(())
    +75    }
    +76
    +77    pub async fn run(
    +78        data: AppData,
    +79        duration: u32,
    +80        mut rx: Receiver<()>,
    +81    ) -> ServiceResult<JoinHandle<()>> {
    +82        Self::register_demo_user(&data).await?;
    +83
    +84        fn can_run(rx: &mut Receiver<()>) -> bool {
    +85            match rx.try_recv() {
    +86                Err(TryRecvError::Empty) => true,
    +87                _ => false,
    +88            }
    +89        }
    +90
    +91        let mut exit = false;
    +92        let fut = async move {
    +93            loop {
    +94                if exit {
    +95                    break;
    +96                }
    +97                for _ in 0..duration {
    +98                    if can_run(&mut rx) {
    +99                        sleep(Duration::new(1, 0)).await;
    +100                        continue;
    +101                    } else {
    +102                        exit = true;
    +103                        break;
    +104                    }
    +105                }
    +106
    +107                if let Err(e) = Self::delete_demo_user(&data).await {
    +108                    log::error!("Error while deleting demo user: {:?}", e);
    +109                }
    +110
    +111                if let Err(e) = Self::register_demo_user(&data).await {
    +112                    log::error!("Error while registering demo user: {:?}", e);
    +113                }
    +114            }
    +115        };
    +116        let handle = spawn(fut);
    +117        Ok(handle)
    +118    }
    +119}
    +120
    +121#[cfg(test)]
    +122mod tests {
    +123
    +124    use actix_web::test;
    +125    use libmcaptcha::defense::Level;
    +126
    +127    use super::*;
    +128    use crate::tests::*;
    +129
    +130    const DURATION: u64 = 25;
    +131
    +132    #[actix_rt::test]
    +133    async fn demo_account_works_pg() {
    +134        let data = crate::tests::pg::get_data().await;
    +135        demo_account_works(data).await;
    +136    }
    +137
    +138    #[actix_rt::test]
    +139    async fn demo_account_works_maria() {
    +140        let data = crate::tests::maria::get_data().await;
    +141        demo_account_works(data).await;
    +142    }
    +143
    +144    async fn demo_account_works(data_inner: ArcData) {
    +145        let data_inner = &data_inner;
    +146        let data = AppData::new(data_inner.clone());
    +147        crate::tests::delete_user(data_inner, DEMO_USER).await;
    +148        let duration = Duration::from_secs(DURATION);
    +149
    +150        // register works
    +151        DemoUser::register_demo_user(&data).await.unwrap();
    +152        let payload = AccountCheckPayload {
    +153            val: DEMO_USER.into(),
    +154        };
    +155        assert!(username_exists(&payload, &data).await.unwrap().exists);
    +156        signin(data_inner, DEMO_USER, DEMO_PASSWORD).await;
    +157
    +158        // deletion works
    +159        assert!(DemoUser::delete_demo_user(&data).await.is_ok());
    +160        assert!(!username_exists(&payload, &data).await.unwrap().exists);
    +161
    +162        // test the runner
    +163        let user = DemoUser::spawn(data, DURATION as u32).await.unwrap();
    +164        let (_, signin_resp, token_key) =
    +165            add_levels_util(data_inner, DEMO_USER, DEMO_PASSWORD).await;
    +166        let cookies = get_cookie!(signin_resp);
    +167        let app = get_app!(data_inner).await;
    +168
    +169        let resp = test::call_service(
    +170            &app,
    +171            post_request!(&token_key, crate::V1_API_ROUTES.captcha.get)
    +172                .cookie(cookies.clone())
    +173                .to_request(),
    +174        )
    +175        .await;
    +176        assert_eq!(resp.status(), StatusCode::OK);
    +177        let res_levels: Vec<Level> = test::read_body_json(resp).await;
    +178        assert!(!res_levels.is_empty());
    +179
    +180        sleep(Duration::from_secs(DURATION * 2)).await;
    +181
    +182        let resp = test::call_service(
    +183            &app,
    +184            post_request!(&token_key, crate::V1_API_ROUTES.captcha.get)
    +185                .cookie(cookies)
    +186                .to_request(),
    +187        )
    +188        .await;
    +189        assert_eq!(resp.status(), StatusCode::OK);
    +190        let res_levels: Vec<Level> = test::read_body_json(resp).await;
    +191        assert!(res_levels.is_empty());
    +192        user.0.abort();
    +193        user.1.await.unwrap();
    +194    }
    +195}
    \ No newline at end of file diff --git a/src/mcaptcha/docs.rs.html b/src/mcaptcha/docs.rs.html index adfd4176..54c37f5a 100644 --- a/src/mcaptcha/docs.rs.html +++ b/src/mcaptcha/docs.rs.html @@ -1,251 +1,124 @@ -docs.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::borrow::Cow;
    -
    -use actix_web::body::BoxBody;
    -use actix_web::{http::header, web, HttpResponse, Responder};
    -use mime_guess::from_path;
    -use rust_embed::RustEmbed;
    -
    -use crate::CACHE_AGE;
    -
    -pub const DOCS: routes::Docs = routes::Docs::new();
    -
    -pub mod routes {
    -    pub struct Docs {
    -        pub home: &'static str,
    -        pub spec: &'static str,
    -        pub assets: &'static str,
    -    }
    -
    -    impl Docs {
    -        pub const fn new() -> Self {
    -            Docs {
    -                home: "/docs/",
    -                spec: "/docs/openapi.yaml",
    -                assets: "/docs/{_:.*}",
    -            }
    -        }
    -    }
    -}
    -
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    cfg.service(index).service(spec).service(dist);
    -}
    -
    -#[derive(RustEmbed)]
    -#[folder = "static/openapi/"]
    -struct Asset;
    -
    -pub fn handle_embedded_file(path: &str) -> HttpResponse {
    -    match Asset::get(path) {
    -        Some(content) => {
    -            let body: BoxBody = match content.data {
    -                Cow::Borrowed(bytes) => BoxBody::new(bytes),
    -                Cow::Owned(bytes) => BoxBody::new(bytes),
    -            };
    -
    -            HttpResponse::Ok()
    -                .insert_header(header::CacheControl(vec![
    -                    header::CacheDirective::Public,
    -                    header::CacheDirective::Extension("immutable".into(), None),
    -                    header::CacheDirective::MaxAge(CACHE_AGE),
    -                ]))
    -                .content_type(from_path(path).first_or_octet_stream().as_ref())
    -                .body(body)
    -        }
    -        None => HttpResponse::NotFound().body("404 Not Found"),
    -    }
    -}
    -
    -#[my_codegen::get(path = "DOCS.assets")]
    -async fn dist(path: web::Path<String>) -> impl Responder {
    -    handle_embedded_file(&path)
    -}
    -const OPEN_API_SPEC: &str = include_str!("../docs/openapi/dist/openapi.yaml");
    -
    -#[my_codegen::get(path = "DOCS.spec")]
    -async fn spec() -> HttpResponse {
    -    HttpResponse::Ok()
    -        .content_type("text/yaml")
    -        .body(OPEN_API_SPEC)
    -}
    -
    -#[my_codegen::get(path = "&DOCS.home[0..DOCS.home.len() -1]")]
    -async fn index() -> HttpResponse {
    -    handle_embedded_file("index.html")
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use super::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn docs_works() {
    -        const FILE: &str = "favicon-32x32.png";
    -
    -        let app = test::init_service(
    -            App::new()
    -                .wrap(actix_middleware::NormalizePath::new(
    -                    actix_middleware::TrailingSlash::Trim,
    -                ))
    -                .configure(services),
    -        )
    -        .await;
    -
    -        let resp = test::call_service(
    -            &app,
    -            test::TestRequest::get().uri(DOCS.home).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -
    -        let resp = test::call_service(
    -            &app,
    -            test::TestRequest::get().uri(DOCS.spec).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -
    -        let uri = format!("{}{}", DOCS.home, FILE);
    -
    -        let resp =
    -            test::call_service(&app, test::TestRequest::get().uri(&uri).to_request())
    -                .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -    }
    -}
    -
    \ No newline at end of file +docs.rs - source

    mcaptcha/
    docs.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::borrow::Cow;
    +7
    +8use actix_web::body::BoxBody;
    +9use actix_web::{http::header, web, HttpResponse, Responder};
    +10use mime_guess::from_path;
    +11use rust_embed::RustEmbed;
    +12
    +13use crate::CACHE_AGE;
    +14
    +15pub const DOCS: routes::Docs = routes::Docs::new();
    +16
    +17pub mod routes {
    +18    pub struct Docs {
    +19        pub home: &'static str,
    +20        pub spec: &'static str,
    +21        pub assets: &'static str,
    +22    }
    +23
    +24    impl Docs {
    +25        pub const fn new() -> Self {
    +26            Docs {
    +27                home: "/docs/",
    +28                spec: "/docs/openapi.yaml",
    +29                assets: "/docs/{_:.*}",
    +30            }
    +31        }
    +32    }
    +33}
    +34
    +35pub fn services(cfg: &mut web::ServiceConfig) {
    +36    cfg.service(index).service(spec).service(dist);
    +37}
    +38
    +39#[derive(RustEmbed)]
    +40#[folder = "static/openapi/"]
    +41struct Asset;
    +42
    +43pub fn handle_embedded_file(path: &str) -> HttpResponse {
    +44    match Asset::get(path) {
    +45        Some(content) => {
    +46            let body: BoxBody = match content.data {
    +47                Cow::Borrowed(bytes) => BoxBody::new(bytes),
    +48                Cow::Owned(bytes) => BoxBody::new(bytes),
    +49            };
    +50
    +51            HttpResponse::Ok()
    +52                .insert_header(header::CacheControl(vec![
    +53                    header::CacheDirective::Public,
    +54                    header::CacheDirective::Extension("immutable".into(), None),
    +55                    header::CacheDirective::MaxAge(CACHE_AGE),
    +56                ]))
    +57                .content_type(from_path(path).first_or_octet_stream().as_ref())
    +58                .body(body)
    +59        }
    +60        None => HttpResponse::NotFound().body("404 Not Found"),
    +61    }
    +62}
    +63
    +64#[my_codegen::get(path = "DOCS.assets")]
    +65async fn dist(path: web::Path<String>) -> impl Responder {
    +66    handle_embedded_file(&path)
    +67}
    +68const OPEN_API_SPEC: &str = include_str!("../docs/openapi/dist/openapi.yaml");
    +69
    +70#[my_codegen::get(path = "DOCS.spec")]
    +71async fn spec() -> HttpResponse {
    +72    HttpResponse::Ok()
    +73        .content_type("text/yaml")
    +74        .body(OPEN_API_SPEC)
    +75}
    +76
    +77#[my_codegen::get(path = "&DOCS.home[0..DOCS.home.len() -1]")]
    +78async fn index() -> HttpResponse {
    +79    handle_embedded_file("index.html")
    +80}
    +81
    +82#[cfg(test)]
    +83mod tests {
    +84    use actix_web::http::StatusCode;
    +85    use actix_web::test;
    +86
    +87    use super::*;
    +88    use crate::*;
    +89
    +90    #[actix_rt::test]
    +91    async fn docs_works() {
    +92        const FILE: &str = "favicon-32x32.png";
    +93
    +94        let app = test::init_service(
    +95            App::new()
    +96                .wrap(actix_middleware::NormalizePath::new(
    +97                    actix_middleware::TrailingSlash::Trim,
    +98                ))
    +99                .configure(services),
    +100        )
    +101        .await;
    +102
    +103        let resp = test::call_service(
    +104            &app,
    +105            test::TestRequest::get().uri(DOCS.home).to_request(),
    +106        )
    +107        .await;
    +108        assert_eq!(resp.status(), StatusCode::OK);
    +109
    +110        let resp = test::call_service(
    +111            &app,
    +112            test::TestRequest::get().uri(DOCS.spec).to_request(),
    +113        )
    +114        .await;
    +115        assert_eq!(resp.status(), StatusCode::OK);
    +116
    +117        let uri = format!("{}{}", DOCS.home, FILE);
    +118
    +119        let resp =
    +120            test::call_service(&app, test::TestRequest::get().uri(&uri).to_request())
    +121                .await;
    +122        assert_eq!(resp.status(), StatusCode::OK);
    +123    }
    +124}
    \ No newline at end of file diff --git a/src/mcaptcha/easy.rs.html b/src/mcaptcha/easy.rs.html index 59347323..686c120c 100644 --- a/src/mcaptcha/easy.rs.html +++ b/src/mcaptcha/easy.rs.html @@ -1,275 +1,136 @@ -easy.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -
    // Copyright (C) 2024// Copyright (C) 2024  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::time::Duration;
    -//use std::sync::atomicBool
    -
    -use actix::clock::sleep;
    -use actix::spawn;
    -use tokio::sync::oneshot::{channel, error::TryRecvError, Receiver, Sender};
    -use tokio::task::JoinHandle;
    -
    -use crate::api::v1::mcaptcha::easy::{
    -    update_runner, TrafficPatternRequest, UpdateTrafficPattern,
    -};
    -use crate::*;
    -
    -use errors::*;
    -
    -pub struct UpdateEasyCaptcha {
    -    tx: Sender<()>,
    -}
    -
    -impl UpdateEasyCaptcha {
    -    pub async fn spawn(
    -        data: AppData,
    -        duration: u32,
    -    ) -> ServiceResult<(Self, JoinHandle<()>)> {
    -        let (tx, rx) = channel();
    -        let handle = Self::run(data, duration, rx).await?;
    -        let d = Self { tx };
    -
    -        Ok((d, handle))
    -    }
    -
    -    #[allow(dead_code)]
    -    pub fn abort(mut self) {
    -        self.tx.send(());
    -    }
    -
    -    /// update configurations
    -    async fn update_captcha_configurations(
    -        data: &AppData,
    -        rx: &mut Receiver<()>,
    -    ) -> ServiceResult<()> {
    -        let limit = 10;
    -        let mut offset = 0;
    -        let mut page = 0;
    -        loop {
    -            offset = page * limit;
    -
    -            if !Self::can_run(rx) {
    -                return Ok(());
    -            }
    -
    -            let mut patterns = data.db.get_all_easy_captchas(limit, offset).await?;
    -            if patterns.is_empty() {
    -                break;
    -            }
    -            for pattern in patterns.drain(0..) {
    -                if !Self::can_run(rx) {
    -                    return Ok(());
    -                }
    -
    -                let publish_benchmarks =
    -                    data.db.analytics_captcha_is_published(&pattern.key).await?;
    -
    -                let req = UpdateTrafficPattern {
    -                    pattern: TrafficPatternRequest {
    -                        avg_traffic: pattern.traffic_pattern.avg_traffic,
    -                        peak_sustainable_traffic: pattern
    -                            .traffic_pattern
    -                            .peak_sustainable_traffic,
    -                        broke_my_site_traffic: pattern
    -                            .traffic_pattern
    -                            .broke_my_site_traffic,
    -                        description: pattern.description,
    -                        publish_benchmarks,
    -                    },
    -                    key: pattern.key,
    -                };
    -                if !Self::can_run(rx) {
    -                    return Ok(());
    -                }
    -
    -                update_runner(&data, req, pattern.username).await?;
    -            }
    -            page += 1;
    -        }
    -        Ok(())
    -    }
    -
    -    fn can_run(rx: &mut Receiver<()>) -> bool {
    -        match rx.try_recv() {
    -            Err(TryRecvError::Empty) => true,
    -            _ => false,
    -        }
    -    }
    -
    -    pub async fn run(
    -        data: AppData,
    -        duration: u32,
    -        mut rx: Receiver<()>,
    -    ) -> ServiceResult<JoinHandle<()>> {
    -        let mut exit = false;
    -        let fut = async move {
    -            loop {
    -                if exit {
    -                    break;
    -                }
    -                for _ in 0..duration {
    -                    if Self::can_run(&mut rx) {
    -                        sleep(Duration::new(1, 0)).await;
    -                        continue;
    -                    } else {
    -                        exit = true;
    -                        break;
    -                    }
    -                }
    -
    -                if let Some(err) = Self::update_captcha_configurations(&data, &mut rx)
    -                    .await
    -                    .err()
    -                {
    -                    log::error!(
    -                        "Tried to update easy captcha configurations in background {:?}",
    -                        err
    -                    );
    -                }
    -            }
    -        };
    -        let handle = spawn(fut);
    -        Ok(handle)
    -    }
    -}
    -
    \ No newline at end of file +easy.rs - source

    mcaptcha/
    easy.rs

    1// Copyright (C) 2024// Copyright (C) 2024  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::time::Duration;
    +7//use std::sync::atomicBool
    +8
    +9use actix::clock::sleep;
    +10use actix::spawn;
    +11use tokio::sync::oneshot::{channel, error::TryRecvError, Receiver, Sender};
    +12use tokio::task::JoinHandle;
    +13
    +14use crate::api::v1::mcaptcha::easy::{
    +15    update_runner, TrafficPatternRequest, UpdateTrafficPattern,
    +16};
    +17use crate::*;
    +18
    +19use errors::*;
    +20
    +21pub struct UpdateEasyCaptcha {
    +22    tx: Sender<()>,
    +23}
    +24
    +25impl UpdateEasyCaptcha {
    +26    pub async fn spawn(
    +27        data: AppData,
    +28        duration: u32,
    +29    ) -> ServiceResult<(Self, JoinHandle<()>)> {
    +30        let (tx, rx) = channel();
    +31        let handle = Self::run(data, duration, rx).await?;
    +32        let d = Self { tx };
    +33
    +34        Ok((d, handle))
    +35    }
    +36
    +37    #[allow(dead_code)]
    +38    pub fn abort(mut self) {
    +39        self.tx.send(());
    +40    }
    +41
    +42    /// update configurations
    +43    async fn update_captcha_configurations(
    +44        data: &AppData,
    +45        rx: &mut Receiver<()>,
    +46    ) -> ServiceResult<()> {
    +47        let limit = 10;
    +48        let mut offset = 0;
    +49        let mut page = 0;
    +50        loop {
    +51            offset = page * limit;
    +52
    +53            if !Self::can_run(rx) {
    +54                return Ok(());
    +55            }
    +56
    +57            let mut patterns = data.db.get_all_easy_captchas(limit, offset).await?;
    +58            if patterns.is_empty() {
    +59                break;
    +60            }
    +61            for pattern in patterns.drain(0..) {
    +62                if !Self::can_run(rx) {
    +63                    return Ok(());
    +64                }
    +65
    +66                let publish_benchmarks =
    +67                    data.db.analytics_captcha_is_published(&pattern.key).await?;
    +68
    +69                let req = UpdateTrafficPattern {
    +70                    pattern: TrafficPatternRequest {
    +71                        avg_traffic: pattern.traffic_pattern.avg_traffic,
    +72                        peak_sustainable_traffic: pattern
    +73                            .traffic_pattern
    +74                            .peak_sustainable_traffic,
    +75                        broke_my_site_traffic: pattern
    +76                            .traffic_pattern
    +77                            .broke_my_site_traffic,
    +78                        description: pattern.description,
    +79                        publish_benchmarks,
    +80                    },
    +81                    key: pattern.key,
    +82                };
    +83                if !Self::can_run(rx) {
    +84                    return Ok(());
    +85                }
    +86
    +87                update_runner(&data, req, pattern.username).await?;
    +88            }
    +89            page += 1;
    +90        }
    +91        Ok(())
    +92    }
    +93
    +94    fn can_run(rx: &mut Receiver<()>) -> bool {
    +95        match rx.try_recv() {
    +96            Err(TryRecvError::Empty) => true,
    +97            _ => false,
    +98        }
    +99    }
    +100
    +101    pub async fn run(
    +102        data: AppData,
    +103        duration: u32,
    +104        mut rx: Receiver<()>,
    +105    ) -> ServiceResult<JoinHandle<()>> {
    +106        let mut exit = false;
    +107        let fut = async move {
    +108            loop {
    +109                if exit {
    +110                    break;
    +111                }
    +112                for _ in 0..duration {
    +113                    if Self::can_run(&mut rx) {
    +114                        sleep(Duration::new(1, 0)).await;
    +115                        continue;
    +116                    } else {
    +117                        exit = true;
    +118                        break;
    +119                    }
    +120                }
    +121
    +122                if let Some(err) = Self::update_captcha_configurations(&data, &mut rx)
    +123                    .await
    +124                    .err()
    +125                {
    +126                    log::error!(
    +127                        "Tried to update easy captcha configurations in background {:?}",
    +128                        err
    +129                    );
    +130                }
    +131            }
    +132        };
    +133        let handle = spawn(fut);
    +134        Ok(handle)
    +135    }
    +136}
    \ No newline at end of file diff --git a/src/mcaptcha/email/mod.rs.html b/src/mcaptcha/email/mod.rs.html index 3afd32fa..3ba40295 100644 --- a/src/mcaptcha/email/mod.rs.html +++ b/src/mcaptcha/email/mod.rs.html @@ -1,15 +1,6 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -pub mod verification;
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/email/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6pub 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 864af6ca..cdc9eb9b 100644 --- a/src/mcaptcha/email/verification.rs.html +++ b/src/mcaptcha/email/verification.rs.html @@ -1,261 +1,129 @@ -verification.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! Email operations: verification, notification, etc
    -use lettre::{
    -    message::{header, MultiPart, SinglePart},
    -    AsyncTransport, Message,
    -};
    -use sailfish::TemplateOnce;
    -
    -use crate::errors::*;
    -use crate::Data;
    -
    -const PAGE: &str = "Login";
    -
    -#[derive(Clone, TemplateOnce)]
    -#[template(path = "email/verification/index.html")]
    -struct IndexPage<'a> {
    -    verification_link: &'a str,
    -}
    -
    -impl<'a> IndexPage<'a> {
    -    fn new(verification_link: &'a str) -> Self {
    -        Self { verification_link }
    -    }
    -}
    -
    -async fn verification(
    -    data: &Data,
    -    to: &str,
    -    verification_link: &str,
    -) -> ServiceResult<()> {
    -    if let Some(smtp) = data.settings.smtp.as_ref() {
    -        let from = format!("mCaptcha Admin <{}>", smtp.from);
    -        let reply_to = format!("mCaptcha Admin <{}>", smtp.reply);
    -        const SUBJECT: &str = "[mCaptcha] Please verify your email";
    -
    -        let plain_text = format!(
    -            "
    -Welcome to mCaptcha!
    -
    -Please verify your email address to continue.
    -
    -VERIFICATION LINK: {}
    -
    -Please ignore this email if you weren't expecting it.
    -
    -With best regards,
    -Admin
    -instance: {}
    -project website: {}",
    -            verification_link,
    -            &data.settings.server.domain,
    -            crate::PKG_HOMEPAGE
    -        );
    -
    -        let html = IndexPage::new(verification_link).render_once().unwrap();
    -
    -        let email = Message::builder()
    -            .from(from.parse().unwrap())
    -            .reply_to(reply_to.parse().unwrap())
    -            .to(to.parse().unwrap())
    -            .subject(SUBJECT)
    -            .multipart(
    -                MultiPart::alternative() // This is composed of two parts.
    -                    .singlepart(
    -                        SinglePart::builder()
    -                            .header(header::ContentType::TEXT_PLAIN)
    -                            .body(plain_text), // Every message should have a plain text fallback.
    -                    )
    -                    .singlepart(
    -                        SinglePart::builder()
    -                            .header(header::ContentType::TEXT_HTML)
    -                            .body(html),
    -                    ),
    -            )
    -            .unwrap();
    -
    -        data.mailer.as_ref().unwrap().send(email).await?;
    -    }
    -    Ok(())
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use super::*;
    -
    -    use awc::Client;
    -
    -    #[actix_rt::test]
    -    async fn email_verification_works_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        email_verification_works(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn email_verification_works_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        email_verification_works(data).await;
    -    }
    -
    -    async fn email_verification_works(data: crate::ArcData) {
    -        const TO_ADDR: &str = "Hello <realaravinth@localhost>";
    -        const VERIFICATION_LINK: &str = "https://localhost";
    -        let settings = &data.settings;
    -        verification(&data, TO_ADDR, VERIFICATION_LINK)
    -            .await
    -            .unwrap();
    -
    -        let client = Client::default();
    -        let mut resp = client
    -            .get("http://localhost:1080/email")
    -            .send()
    -            .await
    -            .unwrap();
    -        let data: serde_json::Value = resp.json().await.unwrap();
    -        let data = &data[0];
    -        let smtp = settings.smtp.as_ref().unwrap();
    -
    -        let from_addr = &data["headers"]["from"];
    -
    -        assert!(from_addr.to_string().contains(&smtp.from));
    -
    -        let body = &data["html"];
    -        assert!(body.to_string().contains(VERIFICATION_LINK));
    -    }
    -}
    -
    \ No newline at end of file +verification.rs - source

    mcaptcha/email/
    verification.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! Email operations: verification, notification, etc
    +7use lettre::{
    +8    message::{header, MultiPart, SinglePart},
    +9    AsyncTransport, Message,
    +10};
    +11use sailfish::TemplateOnce;
    +12
    +13use crate::errors::*;
    +14use crate::Data;
    +15
    +16const PAGE: &str = "Login";
    +17
    +18#[derive(Clone, TemplateOnce)]
    +19#[template(path = "email/verification/index.html")]
    +20struct IndexPage<'a> {
    +21    verification_link: &'a str,
    +22}
    +23
    +24impl<'a> IndexPage<'a> {
    +25    fn new(verification_link: &'a str) -> Self {
    +26        Self { verification_link }
    +27    }
    +28}
    +29
    +30async fn verification(
    +31    data: &Data,
    +32    to: &str,
    +33    verification_link: &str,
    +34) -> ServiceResult<()> {
    +35    if let Some(smtp) = data.settings.smtp.as_ref() {
    +36        let from = format!("mCaptcha Admin <{}>", smtp.from);
    +37        let reply_to = format!("mCaptcha Admin <{}>", smtp.reply);
    +38        const SUBJECT: &str = "[mCaptcha] Please verify your email";
    +39
    +40        let plain_text = format!(
    +41            "
    +42Welcome to mCaptcha!
    +43
    +44Please verify your email address to continue.
    +45
    +46VERIFICATION LINK: {}
    +47
    +48Please ignore this email if you weren't expecting it.
    +49
    +50With best regards,
    +51Admin
    +52instance: {}
    +53project website: {}",
    +54            verification_link,
    +55            &data.settings.server.domain,
    +56            crate::PKG_HOMEPAGE
    +57        );
    +58
    +59        let html = IndexPage::new(verification_link).render_once().unwrap();
    +60
    +61        let email = Message::builder()
    +62            .from(from.parse().unwrap())
    +63            .reply_to(reply_to.parse().unwrap())
    +64            .to(to.parse().unwrap())
    +65            .subject(SUBJECT)
    +66            .multipart(
    +67                MultiPart::alternative() // This is composed of two parts.
    +68                    .singlepart(
    +69                        SinglePart::builder()
    +70                            .header(header::ContentType::TEXT_PLAIN)
    +71                            .body(plain_text), // Every message should have a plain text fallback.
    +72                    )
    +73                    .singlepart(
    +74                        SinglePart::builder()
    +75                            .header(header::ContentType::TEXT_HTML)
    +76                            .body(html),
    +77                    ),
    +78            )
    +79            .unwrap();
    +80
    +81        data.mailer.as_ref().unwrap().send(email).await?;
    +82    }
    +83    Ok(())
    +84}
    +85
    +86#[cfg(test)]
    +87mod tests {
    +88    use super::*;
    +89
    +90    use awc::Client;
    +91
    +92    #[actix_rt::test]
    +93    async fn email_verification_works_pg() {
    +94        let data = crate::tests::pg::get_data().await;
    +95        email_verification_works(data).await;
    +96    }
    +97
    +98    #[actix_rt::test]
    +99    async fn email_verification_works_maria() {
    +100        let data = crate::tests::maria::get_data().await;
    +101        email_verification_works(data).await;
    +102    }
    +103
    +104    async fn email_verification_works(data: crate::ArcData) {
    +105        const TO_ADDR: &str = "Hello <realaravinth@localhost>";
    +106        const VERIFICATION_LINK: &str = "https://localhost";
    +107        let settings = &data.settings;
    +108        verification(&data, TO_ADDR, VERIFICATION_LINK)
    +109            .await
    +110            .unwrap();
    +111
    +112        let client = Client::default();
    +113        let mut resp = client
    +114            .get("http://localhost:1080/email")
    +115            .send()
    +116            .await
    +117            .unwrap();
    +118        let data: serde_json::Value = resp.json().await.unwrap();
    +119        let data = &data[0];
    +120        let smtp = settings.smtp.as_ref().unwrap();
    +121
    +122        let from_addr = &data["headers"]["from"];
    +123
    +124        assert!(from_addr.to_string().contains(&smtp.from));
    +125
    +126        let body = &data["html"];
    +127        assert!(body.to_string().contains(VERIFICATION_LINK));
    +128    }
    +129}
    \ No newline at end of file diff --git a/src/mcaptcha/errors.rs.html b/src/mcaptcha/errors.rs.html index b2f51982..ff3d9e82 100644 --- a/src/mcaptcha/errors.rs.html +++ b/src/mcaptcha/errors.rs.html @@ -1,657 +1,303 @@ -errors.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::convert::From;
    -
    -use actix::MailboxError;
    -use actix_web::{
    -    error::ResponseError,
    -    http::{header, StatusCode},
    -    HttpResponse, HttpResponseBuilder,
    -};
    -use argon2_creds::errors::CredsError;
    -use db_core::errors::DBError;
    -use derive_more::{Display, Error};
    -use lettre::transport::smtp::Error as SmtpError;
    -use libmcaptcha::errors::CaptchaError;
    -use serde::{Deserialize, Serialize};
    -use tokio::sync::oneshot::error::RecvError;
    -use url::ParseError;
    -use validator::ValidationErrors;
    -
    -#[derive(Debug, Display, Error)]
    -pub struct SmtpErrorWrapper(SmtpError);
    -
    -#[derive(Debug, Display, Error)]
    -pub struct DBErrorWrapper(DBError);
    -
    -impl std::cmp::PartialEq for DBErrorWrapper {
    -    fn eq(&self, other: &Self) -> bool {
    -        format!("{}", self.0) == format!("{}", other.0)
    -    }
    -}
    -
    -impl std::cmp::PartialEq for SmtpErrorWrapper {
    -    fn eq(&self, other: &Self) -> bool {
    -        self.0.status() == other.0.status()
    -    }
    -}
    -
    -#[derive(Debug, Display, PartialEq, Error)]
    -#[cfg(not(tarpaulin_include))]
    -pub enum ServiceError {
    -    #[display(fmt = "internal server error")]
    -    InternalServerError,
    -
    -    #[display(
    -        fmt = "This server is is closed for registration. Contact admin if this is unexpecter"
    -    )]
    -    ClosedForRegistration,
    -
    -    #[display(fmt = "The value you entered for email is not an email")] //405j
    -    NotAnEmail,
    -    #[display(fmt = "The value you entered for URL is not a URL")] //405j
    -    NotAUrl,
    -
    -    #[display(fmt = "Wrong password")]
    -    WrongPassword,
    -    #[display(fmt = "Username not found")]
    -    UsernameNotFound,
    -    #[display(fmt = "Account not found")]
    -    AccountNotFound,
    -
    -    /// when the value passed contains profainity
    -    #[display(fmt = "Can't allow profanity in usernames")]
    -    ProfainityError,
    -    /// when the value passed contains blacklisted words
    -    /// see [blacklist](https://github.com/shuttlecraft/The-Big-Username-Blacklist)
    -    #[display(fmt = "Username contains blacklisted words")]
    -    BlacklistError,
    -    /// when the value passed contains characters not present
    -    /// in [UsernameCaseMapped](https://tools.ietf.org/html/rfc8265#page-7)
    -    /// profile
    -    #[display(fmt = "username_case_mapped violation")]
    -    UsernameCaseMappedError,
    -
    -    #[display(fmt = "Passsword too short")]
    -    PasswordTooShort,
    -    #[display(fmt = "Username too long")]
    -    PasswordTooLong,
    -    #[display(fmt = "Passwords don't match")]
    -    PasswordsDontMatch,
    -
    -    /// when the a username is already taken
    -    #[display(fmt = "Username not available")]
    -    UsernameTaken,
    -
    -    /// email is already taken
    -    #[display(fmt = "Email not available")]
    -    EmailTaken,
    -
    -    /// Unable to send email
    -    #[display(fmt = "Unable to send email, contact admin")]
    -    UnableToSendEmail(SmtpErrorWrapper),
    -
    -    /// token not found
    -    #[display(fmt = "Token not found. Is token registered?")]
    -    TokenNotFound,
    -
    -    #[display(fmt = "{}", _0)]
    -    CaptchaError(CaptchaError),
    -
    -    #[display(fmt = "{}", _0)]
    -    DBError(DBErrorWrapper),
    -
    -    /// captcha not found
    -    #[display(fmt = "Captcha not found.")]
    -    CaptchaNotFound,
    -
    -    /// Traffic pattern not found
    -    #[display(fmt = "Traffic pattern not found")]
    -    TrafficPatternNotFound,
    -}
    -
    -#[derive(Serialize, Deserialize)]
    -#[cfg(not(tarpaulin_include))]
    -pub struct ErrorToResponse {
    -    pub error: String,
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -impl ResponseError for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn error_response(&self) -> HttpResponse {
    -        HttpResponseBuilder::new(self.status_code())
    -            .append_header((header::CONTENT_TYPE, "application/json; charset=UTF-8"))
    -            .body(
    -                serde_json::to_string(&ErrorToResponse {
    -                    error: self.to_string(),
    -                })
    -                .unwrap(),
    -            )
    -    }
    -
    -    #[cfg(not(tarpaulin_include))]
    -    fn status_code(&self) -> StatusCode {
    -        match self {
    -            ServiceError::ClosedForRegistration => StatusCode::FORBIDDEN,
    -            ServiceError::InternalServerError => StatusCode::INTERNAL_SERVER_ERROR,
    -            ServiceError::NotAnEmail => StatusCode::BAD_REQUEST,
    -            ServiceError::NotAUrl => StatusCode::BAD_REQUEST,
    -            ServiceError::WrongPassword => StatusCode::UNAUTHORIZED,
    -            ServiceError::UsernameNotFound => StatusCode::NOT_FOUND,
    -            ServiceError::AccountNotFound => StatusCode::NOT_FOUND,
    -
    -            ServiceError::ProfainityError => StatusCode::BAD_REQUEST,
    -            ServiceError::BlacklistError => StatusCode::BAD_REQUEST,
    -            ServiceError::UsernameCaseMappedError => StatusCode::BAD_REQUEST,
    -
    -            ServiceError::PasswordTooShort => StatusCode::BAD_REQUEST,
    -            ServiceError::PasswordTooLong => StatusCode::BAD_REQUEST,
    -            ServiceError::PasswordsDontMatch => StatusCode::BAD_REQUEST,
    -
    -            ServiceError::UsernameTaken => StatusCode::BAD_REQUEST,
    -            ServiceError::EmailTaken => StatusCode::BAD_REQUEST,
    -
    -            ServiceError::TokenNotFound => StatusCode::NOT_FOUND,
    -            ServiceError::CaptchaError(e) => {
    -                log::error!("{}", e);
    -                match e {
    -                    CaptchaError::MailboxError => StatusCode::INTERNAL_SERVER_ERROR,
    -                    _ => StatusCode::BAD_REQUEST,
    -                }
    -            }
    -
    -            ServiceError::UnableToSendEmail(e) => {
    -                log::error!("{}", e.0);
    -                StatusCode::INTERNAL_SERVER_ERROR
    -            }
    -
    -            ServiceError::DBError(_) => StatusCode::INTERNAL_SERVER_ERROR,
    -            ServiceError::CaptchaNotFound => StatusCode::NOT_FOUND,
    -            ServiceError::TrafficPatternNotFound => StatusCode::NOT_FOUND,
    -        }
    -    }
    -}
    -
    -impl From<CredsError> for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(e: CredsError) -> ServiceError {
    -        match e {
    -            CredsError::UsernameCaseMappedError => ServiceError::UsernameCaseMappedError,
    -            CredsError::ProfainityError => ServiceError::ProfainityError,
    -            CredsError::BlacklistError => ServiceError::BlacklistError,
    -            CredsError::NotAnEmail => ServiceError::NotAnEmail,
    -            CredsError::Argon2Error(_) => ServiceError::InternalServerError,
    -            CredsError::PasswordTooLong => ServiceError::PasswordTooLong,
    -            CredsError::PasswordTooShort => ServiceError::PasswordTooShort,
    -        }
    -    }
    -}
    -
    -impl From<DBError> for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(e: DBError) -> ServiceError {
    -        println!("from conversin: {}", e);
    -        match e {
    -            DBError::UsernameTaken => ServiceError::UsernameTaken,
    -            DBError::SecretTaken => ServiceError::InternalServerError,
    -            DBError::EmailTaken => ServiceError::EmailTaken,
    -            DBError::AccountNotFound => ServiceError::AccountNotFound,
    -            DBError::CaptchaNotFound => ServiceError::CaptchaNotFound,
    -            DBError::TrafficPatternNotFound => ServiceError::TrafficPatternNotFound,
    -            _ => ServiceError::DBError(DBErrorWrapper(e)),
    -        }
    -    }
    -}
    -
    -impl From<ValidationErrors> for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(_: ValidationErrors) -> ServiceError {
    -        ServiceError::NotAnEmail
    -    }
    -}
    -
    -impl From<ParseError> for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(_: ParseError) -> ServiceError {
    -        ServiceError::NotAUrl
    -    }
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -impl From<CaptchaError> for ServiceError {
    -    fn from(e: CaptchaError) -> ServiceError {
    -        ServiceError::CaptchaError(e)
    -    }
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -impl From<SmtpError> for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(e: SmtpError) -> Self {
    -        ServiceError::UnableToSendEmail(SmtpErrorWrapper(e))
    -    }
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -impl From<RecvError> for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(e: RecvError) -> Self {
    -        log::error!("{:?}", e);
    -        ServiceError::InternalServerError
    -    }
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -impl From<MailboxError> for ServiceError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(e: MailboxError) -> Self {
    -        log::error!("{:?}", e);
    -        ServiceError::InternalServerError
    -    }
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -pub type ServiceResult<V> = std::result::Result<V, ServiceError>;
    -
    -#[derive(Debug, Display, PartialEq, Error)]
    -#[cfg(not(tarpaulin_include))]
    -pub enum PageError {
    -    #[display(fmt = "Something weng wrong: Internal server error")]
    -    InternalServerError,
    -
    -    #[display(fmt = "{}", _0)]
    -    ServiceError(ServiceError),
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -impl From<ServiceError> for PageError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(e: ServiceError) -> Self {
    -        PageError::ServiceError(e)
    -    }
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -impl From<DBError> for PageError {
    -    #[cfg(not(tarpaulin_include))]
    -    fn from(e: DBError) -> Self {
    -        let se: ServiceError = e.into();
    -        se.into()
    -    }
    -}
    -
    -impl ResponseError for PageError {
    -    fn error_response(&self) -> HttpResponse {
    -        use crate::PAGES;
    -        match self.status_code() {
    -            StatusCode::INTERNAL_SERVER_ERROR => HttpResponse::Found()
    -                .append_header((header::LOCATION, PAGES.errors.internal_server_error))
    -                .finish(),
    -            _ => HttpResponse::Found()
    -                .append_header((header::LOCATION, PAGES.errors.unknown_error))
    -                .finish(),
    -        }
    -    }
    -
    -    #[cfg(not(tarpaulin_include))]
    -    fn status_code(&self) -> StatusCode {
    -        match self {
    -            PageError::InternalServerError => StatusCode::INTERNAL_SERVER_ERROR,
    -            PageError::ServiceError(e) => e.status_code(),
    -        }
    -    }
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -pub type PageResult<V> = std::result::Result<V, PageError>;
    -
    -#[cfg(test)]
    -mod tests {
    -    use super::*;
    -    use crate::PAGES;
    -
    -    #[test]
    -    fn error_works() {
    -        let resp: HttpResponse = PageError::InternalServerError.error_response();
    -        assert_eq!(resp.status(), StatusCode::FOUND);
    -        let headers = resp.headers();
    -        assert_eq!(
    -            headers.get(header::LOCATION).unwrap(),
    -            PAGES.errors.internal_server_error
    -        );
    -    }
    -}
    -
    \ No newline at end of file +errors.rs - source

    mcaptcha/
    errors.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::convert::From;
    +7
    +8use actix::MailboxError;
    +9use actix_web::{
    +10    error::ResponseError,
    +11    http::{header, StatusCode},
    +12    HttpResponse, HttpResponseBuilder,
    +13};
    +14use argon2_creds::errors::CredsError;
    +15use db_core::errors::DBError;
    +16use derive_more::{Display, Error};
    +17use lettre::transport::smtp::Error as SmtpError;
    +18use libmcaptcha::errors::CaptchaError;
    +19use serde::{Deserialize, Serialize};
    +20use tokio::sync::oneshot::error::RecvError;
    +21use url::ParseError;
    +22use validator::ValidationErrors;
    +23
    +24#[derive(Debug, Display, Error)]
    +25pub struct SmtpErrorWrapper(SmtpError);
    +26
    +27#[derive(Debug, Display, Error)]
    +28pub struct DBErrorWrapper(DBError);
    +29
    +30impl std::cmp::PartialEq for DBErrorWrapper {
    +31    fn eq(&self, other: &Self) -> bool {
    +32        format!("{}", self.0) == format!("{}", other.0)
    +33    }
    +34}
    +35
    +36impl std::cmp::PartialEq for SmtpErrorWrapper {
    +37    fn eq(&self, other: &Self) -> bool {
    +38        self.0.status() == other.0.status()
    +39    }
    +40}
    +41
    +42#[derive(Debug, Display, PartialEq, Error)]
    +43pub enum ServiceError {
    +44    #[display(fmt = "internal server error")]
    +45    InternalServerError,
    +46
    +47    #[display(
    +48        fmt = "This server is is closed for registration. Contact admin if this is unexpecter"
    +49    )]
    +50    ClosedForRegistration,
    +51
    +52    #[display(fmt = "The value you entered for email is not an email")] //405j
    +53    NotAnEmail,
    +54    #[display(fmt = "The value you entered for URL is not a URL")] //405j
    +55    NotAUrl,
    +56
    +57    #[display(fmt = "Wrong password")]
    +58    WrongPassword,
    +59    #[display(fmt = "Username not found")]
    +60    UsernameNotFound,
    +61    #[display(fmt = "Account not found")]
    +62    AccountNotFound,
    +63
    +64    /// when the value passed contains profainity
    +65    #[display(fmt = "Can't allow profanity in usernames")]
    +66    ProfainityError,
    +67    /// when the value passed contains blacklisted words
    +68    /// see [blacklist](https://github.com/shuttlecraft/The-Big-Username-Blacklist)
    +69    #[display(fmt = "Username contains blacklisted words")]
    +70    BlacklistError,
    +71    /// when the value passed contains characters not present
    +72    /// in [UsernameCaseMapped](https://tools.ietf.org/html/rfc8265#page-7)
    +73    /// profile
    +74    #[display(fmt = "username_case_mapped violation")]
    +75    UsernameCaseMappedError,
    +76
    +77    #[display(fmt = "Passsword too short")]
    +78    PasswordTooShort,
    +79    #[display(fmt = "Username too long")]
    +80    PasswordTooLong,
    +81    #[display(fmt = "Passwords don't match")]
    +82    PasswordsDontMatch,
    +83
    +84    /// when the a username is already taken
    +85    #[display(fmt = "Username not available")]
    +86    UsernameTaken,
    +87
    +88    /// email is already taken
    +89    #[display(fmt = "Email not available")]
    +90    EmailTaken,
    +91
    +92    /// Unable to send email
    +93    #[display(fmt = "Unable to send email, contact admin")]
    +94    UnableToSendEmail(SmtpErrorWrapper),
    +95
    +96    /// token not found
    +97    #[display(fmt = "Token not found. Is token registered?")]
    +98    TokenNotFound,
    +99
    +100    #[display(fmt = "{}", _0)]
    +101    CaptchaError(CaptchaError),
    +102
    +103    #[display(fmt = "{}", _0)]
    +104    DBError(DBErrorWrapper),
    +105
    +106    /// captcha not found
    +107    #[display(fmt = "Captcha not found.")]
    +108    CaptchaNotFound,
    +109
    +110    /// Traffic pattern not found
    +111    #[display(fmt = "Traffic pattern not found")]
    +112    TrafficPatternNotFound,
    +113}
    +114
    +115#[derive(Serialize, Deserialize)]
    +116pub struct ErrorToResponse {
    +117    pub error: String,
    +118}
    +119
    +120impl ResponseError for ServiceError {
    +121    fn error_response(&self) -> HttpResponse {
    +122        HttpResponseBuilder::new(self.status_code())
    +123            .append_header((header::CONTENT_TYPE, "application/json; charset=UTF-8"))
    +124            .body(
    +125                serde_json::to_string(&ErrorToResponse {
    +126                    error: self.to_string(),
    +127                })
    +128                .unwrap(),
    +129            )
    +130    }
    +131
    +132    fn status_code(&self) -> StatusCode {
    +133        match self {
    +134            ServiceError::ClosedForRegistration => StatusCode::FORBIDDEN,
    +135            ServiceError::InternalServerError => StatusCode::INTERNAL_SERVER_ERROR,
    +136            ServiceError::NotAnEmail => StatusCode::BAD_REQUEST,
    +137            ServiceError::NotAUrl => StatusCode::BAD_REQUEST,
    +138            ServiceError::WrongPassword => StatusCode::UNAUTHORIZED,
    +139            ServiceError::UsernameNotFound => StatusCode::NOT_FOUND,
    +140            ServiceError::AccountNotFound => StatusCode::NOT_FOUND,
    +141
    +142            ServiceError::ProfainityError => StatusCode::BAD_REQUEST,
    +143            ServiceError::BlacklistError => StatusCode::BAD_REQUEST,
    +144            ServiceError::UsernameCaseMappedError => StatusCode::BAD_REQUEST,
    +145
    +146            ServiceError::PasswordTooShort => StatusCode::BAD_REQUEST,
    +147            ServiceError::PasswordTooLong => StatusCode::BAD_REQUEST,
    +148            ServiceError::PasswordsDontMatch => StatusCode::BAD_REQUEST,
    +149
    +150            ServiceError::UsernameTaken => StatusCode::BAD_REQUEST,
    +151            ServiceError::EmailTaken => StatusCode::BAD_REQUEST,
    +152
    +153            ServiceError::TokenNotFound => StatusCode::NOT_FOUND,
    +154            ServiceError::CaptchaError(e) => {
    +155                log::error!("{}", e);
    +156                match e {
    +157                    CaptchaError::MailboxError => StatusCode::INTERNAL_SERVER_ERROR,
    +158                    _ => StatusCode::BAD_REQUEST,
    +159                }
    +160            }
    +161
    +162            ServiceError::UnableToSendEmail(e) => {
    +163                log::error!("{}", e.0);
    +164                StatusCode::INTERNAL_SERVER_ERROR
    +165            }
    +166
    +167            ServiceError::DBError(_) => StatusCode::INTERNAL_SERVER_ERROR,
    +168            ServiceError::CaptchaNotFound => StatusCode::NOT_FOUND,
    +169            ServiceError::TrafficPatternNotFound => StatusCode::NOT_FOUND,
    +170        }
    +171    }
    +172}
    +173
    +174impl From<CredsError> for ServiceError {
    +175    fn from(e: CredsError) -> ServiceError {
    +176        match e {
    +177            CredsError::UsernameCaseMappedError => ServiceError::UsernameCaseMappedError,
    +178            CredsError::ProfainityError => ServiceError::ProfainityError,
    +179            CredsError::BlacklistError => ServiceError::BlacklistError,
    +180            CredsError::NotAnEmail => ServiceError::NotAnEmail,
    +181            CredsError::Argon2Error(_) => ServiceError::InternalServerError,
    +182            CredsError::PasswordTooLong => ServiceError::PasswordTooLong,
    +183            CredsError::PasswordTooShort => ServiceError::PasswordTooShort,
    +184        }
    +185    }
    +186}
    +187
    +188impl From<DBError> for ServiceError {
    +189    fn from(e: DBError) -> ServiceError {
    +190        println!("from conversin: {}", e);
    +191        match e {
    +192            DBError::UsernameTaken => ServiceError::UsernameTaken,
    +193            DBError::SecretTaken => ServiceError::InternalServerError,
    +194            DBError::EmailTaken => ServiceError::EmailTaken,
    +195            DBError::AccountNotFound => ServiceError::AccountNotFound,
    +196            DBError::CaptchaNotFound => ServiceError::CaptchaNotFound,
    +197            DBError::TrafficPatternNotFound => ServiceError::TrafficPatternNotFound,
    +198            _ => ServiceError::DBError(DBErrorWrapper(e)),
    +199        }
    +200    }
    +201}
    +202
    +203impl From<ValidationErrors> for ServiceError {
    +204    fn from(_: ValidationErrors) -> ServiceError {
    +205        ServiceError::NotAnEmail
    +206    }
    +207}
    +208
    +209impl From<ParseError> for ServiceError {
    +210    fn from(_: ParseError) -> ServiceError {
    +211        ServiceError::NotAUrl
    +212    }
    +213}
    +214
    +215impl From<CaptchaError> for ServiceError {
    +216    fn from(e: CaptchaError) -> ServiceError {
    +217        ServiceError::CaptchaError(e)
    +218    }
    +219}
    +220
    +221impl From<SmtpError> for ServiceError {
    +222    fn from(e: SmtpError) -> Self {
    +223        ServiceError::UnableToSendEmail(SmtpErrorWrapper(e))
    +224    }
    +225}
    +226
    +227impl From<RecvError> for ServiceError {
    +228    fn from(e: RecvError) -> Self {
    +229        log::error!("{:?}", e);
    +230        ServiceError::InternalServerError
    +231    }
    +232}
    +233
    +234impl From<MailboxError> for ServiceError {
    +235    fn from(e: MailboxError) -> Self {
    +236        log::error!("{:?}", e);
    +237        ServiceError::InternalServerError
    +238    }
    +239}
    +240
    +241pub type ServiceResult<V> = std::result::Result<V, ServiceError>;
    +242
    +243#[derive(Debug, Display, PartialEq, Error)]
    +244pub enum PageError {
    +245    #[display(fmt = "Something weng wrong: Internal server error")]
    +246    InternalServerError,
    +247
    +248    #[display(fmt = "{}", _0)]
    +249    ServiceError(ServiceError),
    +250}
    +251
    +252impl From<ServiceError> for PageError {
    +253    fn from(e: ServiceError) -> Self {
    +254        PageError::ServiceError(e)
    +255    }
    +256}
    +257
    +258impl From<DBError> for PageError {
    +259    fn from(e: DBError) -> Self {
    +260        let se: ServiceError = e.into();
    +261        se.into()
    +262    }
    +263}
    +264
    +265impl ResponseError for PageError {
    +266    fn error_response(&self) -> HttpResponse {
    +267        use crate::PAGES;
    +268        match self.status_code() {
    +269            StatusCode::INTERNAL_SERVER_ERROR => HttpResponse::Found()
    +270                .append_header((header::LOCATION, PAGES.errors.internal_server_error))
    +271                .finish(),
    +272            _ => HttpResponse::Found()
    +273                .append_header((header::LOCATION, PAGES.errors.unknown_error))
    +274                .finish(),
    +275        }
    +276    }
    +277
    +278    fn status_code(&self) -> StatusCode {
    +279        match self {
    +280            PageError::InternalServerError => StatusCode::INTERNAL_SERVER_ERROR,
    +281            PageError::ServiceError(e) => e.status_code(),
    +282        }
    +283    }
    +284}
    +285
    +286pub type PageResult<V> = std::result::Result<V, PageError>;
    +287
    +288#[cfg(test)]
    +289mod tests {
    +290    use super::*;
    +291    use crate::PAGES;
    +292
    +293    #[test]
    +294    fn error_works() {
    +295        let resp: HttpResponse = PageError::InternalServerError.error_response();
    +296        assert_eq!(resp.status(), StatusCode::FOUND);
    +297        let headers = resp.headers();
    +298        assert_eq!(
    +299            headers.get(header::LOCATION).unwrap(),
    +300            PAGES.errors.internal_server_error
    +301        );
    +302    }
    +303}
    \ No newline at end of file diff --git a/src/mcaptcha/main.rs.html b/src/mcaptcha/main.rs.html index 0e55b5ef..1a4bde00 100644 --- a/src/mcaptcha/main.rs.html +++ b/src/mcaptcha/main.rs.html @@ -1,449 +1,220 @@ -main.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -
    #![allow(warnings)]
    -// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::env;
    -use std::sync::Arc;
    -
    -use actix_identity::{CookieIdentityPolicy, IdentityService};
    -use actix_web::{
    -    error::InternalError, http::StatusCode, middleware as actix_middleware,
    -    web::JsonConfig, App, HttpServer,
    -};
    -use lazy_static::lazy_static;
    -use log::info;
    -use tokio::task::JoinHandle;
    -
    -mod api;
    -mod data;
    -mod date;
    -mod db;
    -mod demo;
    -mod docs;
    -mod easy;
    -mod email;
    -mod errors;
    -#[macro_use]
    -mod pages;
    -#[macro_use]
    -mod routes;
    -mod settings;
    -mod static_assets;
    -mod stats;
    -mod survey;
    -#[cfg(test)]
    -#[macro_use]
    -mod tests;
    -mod widget;
    -
    -pub use crate::data::Data;
    -pub use crate::static_assets::static_files::assets::*;
    -pub use api::v1::ROUTES as V1_API_ROUTES;
    -pub use docs::DOCS;
    -pub use pages::routes::ROUTES as PAGES;
    -pub use settings::Settings;
    -use static_assets::FileMap;
    -pub use widget::WIDGET_ROUTES;
    -
    -use crate::demo::DemoUser;
    -use survey::SurveyClientTrait;
    -
    -lazy_static! {
    -    pub static ref SETTINGS: Settings = Settings::new().unwrap();
    -//    pub static ref S: String = env::var("S").unwrap();
    -    pub static ref FILES: FileMap = FileMap::new();
    -    pub static ref JS: &'static str =
    -        FILES.get("./static/cache/bundle/bundle.js").unwrap();
    -    pub static ref CSS: &'static str =
    -        FILES.get("./static/cache/bundle/css/main.css").unwrap();
    -    pub static ref MOBILE_CSS: &'static str =
    -        FILES.get("./static/cache/bundle/css/mobile.css").unwrap();
    -
    -    pub static ref VERIFICATIN_WIDGET_JS: &'static str =
    -        FILES.get("./static/cache/bundle/verificationWidget.js").unwrap();
    -    pub static ref VERIFICATIN_WIDGET_CSS: &'static str =
    -        FILES.get("./static/cache/bundle/css/widget.css").unwrap();
    -
    -    /// points to source files matching build commit
    -    pub static ref SOURCE_FILES_OF_INSTANCE: String = {
    -        let mut url = SETTINGS.source_code.clone();
    -        if !url.ends_with('/') {
    -            url.push('/');
    -        }
    -        let mut  base = url::Url::parse(&url).unwrap();
    -        base =  base.join("tree/").unwrap();
    -        base =  base.join(GIT_COMMIT_HASH).unwrap();
    -        base.into()
    -    };
    -
    -}
    -
    -pub const COMPILED_DATE: &str = env!("COMPILED_DATE");
    -pub const GIT_COMMIT_HASH: &str = env!("GIT_HASH");
    -pub const VERSION: &str = env!("CARGO_PKG_VERSION");
    -pub const PKG_NAME: &str = env!("CARGO_PKG_NAME");
    -pub const PKG_DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION");
    -pub const PKG_HOMEPAGE: &str = env!("CARGO_PKG_HOMEPAGE");
    -
    -pub const CACHE_AGE: u32 = 604800;
    -
    -pub type ArcData = Arc<crate::data::Data>;
    -pub type AppData = actix_web::web::Data<ArcData>;
    -
    -#[cfg(not(tarpaulin_include))]
    -#[actix_web::main]
    -async fn main() -> std::io::Result<()> {
    -    use std::time::Duration;
    -
    -    if env::var("RUST_LOG").is_err() {
    -        env::set_var("RUST_LOG", "info");
    -    }
    -
    -    pretty_env_logger::init();
    -    info!(
    -        "{}: {}.\nFor more information, see: {}\nBuild info:\nVersion: {} commit: {}",
    -        PKG_NAME, PKG_DESCRIPTION, PKG_HOMEPAGE, VERSION, GIT_COMMIT_HASH
    -    );
    -
    -    let settings = Settings::new().unwrap();
    -    let secrets = survey::SecretsStore::default();
    -    let data = Data::new(&settings, secrets.clone()).await;
    -    let data = actix_web::web::Data::new(data);
    -
    -    let mut demo_user: Option<(DemoUser, JoinHandle<()>)> = None;
    -
    -    if settings.allow_demo && settings.allow_registration {
    -        demo_user = Some(DemoUser::spawn(data.clone(), 60 * 30).await.unwrap());
    -    }
    -
    -    let mut update_easy_captcha: Option<(easy::UpdateEasyCaptcha, JoinHandle<()>)> =
    -        None;
    -    if settings
    -        .captcha
    -        .default_difficulty_strategy
    -        .avg_traffic_time
    -        .is_some()
    -    {
    -        update_easy_captcha = Some(
    -            easy::UpdateEasyCaptcha::spawn(data.clone(), 60 * 30)
    -                .await
    -                .unwrap(),
    -        );
    -    }
    -
    -    let (mut survey_upload_tx, mut survey_upload_handle) = (None, None);
    -    if settings.survey.is_some() {
    -        let survey_runner_ctx = survey::Survey::new(data.clone());
    -        let (x, y) = survey_runner_ctx.start_job().await.unwrap();
    -        (survey_upload_tx, survey_upload_handle) = (Some(x), Some(y));
    -    }
    -
    -    let ip = settings.server.get_ip();
    -    println!("Starting server on: http://{ip}");
    -
    -    HttpServer::new(move || {
    -        App::new()
    -            .wrap(actix_middleware::Logger::default())
    -            .wrap(
    -                actix_middleware::DefaultHeaders::new()
    -                    .add(("Permissions-Policy", "interest-cohort=()")),
    -            )
    -            .wrap(get_identity_service(&settings))
    -            .wrap(actix_middleware::Compress::default())
    -            .app_data(data.clone())
    -            .wrap(actix_middleware::NormalizePath::new(
    -                actix_middleware::TrailingSlash::Trim,
    -            ))
    -            .configure(routes::services)
    -            .app_data(get_json_err())
    -    })
    -    .bind(&ip)
    -    .unwrap()
    -    .run()
    -    .await?;
    -
    -    if let Some(survey_upload_tx) = survey_upload_tx {
    -        survey_upload_tx.send(()).unwrap();
    -    }
    -
    -    if let Some(demo_user) = demo_user {
    -        demo_user.0.abort();
    -        demo_user.1.await.unwrap();
    -    }
    -
    -    if let Some(update_easy_captcha) = update_easy_captcha {
    -        update_easy_captcha.0.abort();
    -        update_easy_captcha.1.await.unwrap();
    -    }
    -
    -    if let Some(survey_upload_handle) = survey_upload_handle {
    -        survey_upload_handle.await.unwrap();
    -    }
    -
    -    Ok(())
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -pub fn get_json_err() -> JsonConfig {
    -    JsonConfig::default().error_handler(|err, _| {
    -        //debug!("JSON deserialization error: {:?}", &err);
    -        InternalError::new(err, StatusCode::BAD_REQUEST).into()
    -    })
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -pub fn get_identity_service(
    -    settings: &Settings,
    -) -> IdentityService<CookieIdentityPolicy> {
    -    let cookie_secret = &settings.server.cookie_secret;
    -    IdentityService::new(
    -        CookieIdentityPolicy::new(cookie_secret.as_bytes())
    -            .name("Authorization")
    -            //TODO change cookie age
    -            .max_age_secs(216000)
    -            .domain(&settings.server.domain)
    -            .secure(false),
    -    )
    -}
    -
    -#[cfg(test)]
    -mod test {
    -    #[test]
    -    fn version_source_code_url_works() {
    -        assert_eq!(
    -            &*crate::SOURCE_FILES_OF_INSTANCE,
    -            &format!(
    -                "https://github.com/mCaptcha/mCaptcha/tree/{}",
    -                crate::GIT_COMMIT_HASH
    -            )
    -        );
    -    }
    -}
    -
    \ No newline at end of file +main.rs - source

    mcaptcha/
    main.rs

    1#![allow(warnings)]
    +2// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +3// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +4//
    +5// SPDX-License-Identifier: AGPL-3.0-or-later
    +6
    +7use std::env;
    +8use std::sync::Arc;
    +9
    +10use actix_identity::{CookieIdentityPolicy, IdentityService};
    +11use actix_web::{
    +12    error::InternalError, http::StatusCode, middleware as actix_middleware,
    +13    web::JsonConfig, App, HttpServer,
    +14};
    +15use lazy_static::lazy_static;
    +16use log::info;
    +17use tokio::task::JoinHandle;
    +18
    +19mod api;
    +20mod data;
    +21mod date;
    +22mod db;
    +23mod demo;
    +24mod docs;
    +25mod easy;
    +26mod email;
    +27mod errors;
    +28#[macro_use]
    +29mod pages;
    +30#[macro_use]
    +31mod routes;
    +32mod settings;
    +33mod static_assets;
    +34mod stats;
    +35mod survey;
    +36#[cfg(test)]
    +37#[macro_use]
    +38mod tests;
    +39mod widget;
    +40
    +41pub use crate::data::Data;
    +42pub use crate::static_assets::static_files::assets::*;
    +43pub use api::v1::ROUTES as V1_API_ROUTES;
    +44pub use docs::DOCS;
    +45pub use pages::routes::ROUTES as PAGES;
    +46pub use settings::Settings;
    +47use static_assets::FileMap;
    +48pub use widget::WIDGET_ROUTES;
    +49
    +50use crate::demo::DemoUser;
    +51use survey::SurveyClientTrait;
    +52
    +53lazy_static! {
    +54    pub static ref SETTINGS: Settings = Settings::new().unwrap();
    +55//    pub static ref S: String = env::var("S").unwrap();
    +56    pub static ref FILES: FileMap = FileMap::new();
    +57    pub static ref JS: &'static str =
    +58        FILES.get("./static/cache/bundle/bundle.js").unwrap();
    +59    pub static ref CSS: &'static str =
    +60        FILES.get("./static/cache/bundle/css/main.css").unwrap();
    +61    pub static ref MOBILE_CSS: &'static str =
    +62        FILES.get("./static/cache/bundle/css/mobile.css").unwrap();
    +63
    +64    pub static ref VERIFICATIN_WIDGET_JS: &'static str =
    +65        FILES.get("./static/cache/bundle/verificationWidget.js").unwrap();
    +66    pub static ref VERIFICATIN_WIDGET_CSS: &'static str =
    +67        FILES.get("./static/cache/bundle/css/widget.css").unwrap();
    +68
    +69    /// points to source files matching build commit
    +70    pub static ref SOURCE_FILES_OF_INSTANCE: String = {
    +71        let mut url = SETTINGS.source_code.clone();
    +72        if !url.ends_with('/') {
    +73            url.push('/');
    +74        }
    +75        let mut  base = url::Url::parse(&url).unwrap();
    +76        base =  base.join("tree/").unwrap();
    +77        base =  base.join(GIT_COMMIT_HASH).unwrap();
    +78        base.into()
    +79    };
    +80
    +81}
    +82
    +83pub const COMPILED_DATE: &str = env!("COMPILED_DATE");
    +84pub const GIT_COMMIT_HASH: &str = env!("GIT_HASH");
    +85pub const VERSION: &str = env!("CARGO_PKG_VERSION");
    +86pub const PKG_NAME: &str = env!("CARGO_PKG_NAME");
    +87pub const PKG_DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION");
    +88pub const PKG_HOMEPAGE: &str = env!("CARGO_PKG_HOMEPAGE");
    +89
    +90pub const CACHE_AGE: u32 = 604800;
    +91
    +92pub type ArcData = Arc<crate::data::Data>;
    +93pub type AppData = actix_web::web::Data<ArcData>;
    +94
    +95#[actix_web::main]
    +96async fn main() -> std::io::Result<()> {
    +97    use std::time::Duration;
    +98
    +99    if env::var("RUST_LOG").is_err() {
    +100        env::set_var("RUST_LOG", "info");
    +101    }
    +102
    +103    pretty_env_logger::init();
    +104    info!(
    +105        "{}: {}.\nFor more information, see: {}\nBuild info:\nVersion: {} commit: {}",
    +106        PKG_NAME, PKG_DESCRIPTION, PKG_HOMEPAGE, VERSION, GIT_COMMIT_HASH
    +107    );
    +108
    +109    let settings = Settings::new().unwrap();
    +110    let secrets = survey::SecretsStore::default();
    +111    let data = Data::new(&settings, secrets.clone()).await;
    +112    let data = actix_web::web::Data::new(data);
    +113
    +114    let mut demo_user: Option<(DemoUser, JoinHandle<()>)> = None;
    +115
    +116    if settings.allow_demo && settings.allow_registration {
    +117        demo_user = Some(DemoUser::spawn(data.clone(), 60 * 30).await.unwrap());
    +118    }
    +119
    +120    let mut update_easy_captcha: Option<(easy::UpdateEasyCaptcha, JoinHandle<()>)> =
    +121        None;
    +122    if settings
    +123        .captcha
    +124        .default_difficulty_strategy
    +125        .avg_traffic_time
    +126        .is_some()
    +127    {
    +128        update_easy_captcha = Some(
    +129            easy::UpdateEasyCaptcha::spawn(data.clone(), 60 * 30)
    +130                .await
    +131                .unwrap(),
    +132        );
    +133    }
    +134
    +135    let (mut survey_upload_tx, mut survey_upload_handle) = (None, None);
    +136    if settings.survey.is_some() {
    +137        let survey_runner_ctx = survey::Survey::new(data.clone());
    +138        let (x, y) = survey_runner_ctx.start_job().await.unwrap();
    +139        (survey_upload_tx, survey_upload_handle) = (Some(x), Some(y));
    +140    }
    +141
    +142    let ip = settings.server.get_ip();
    +143    println!("Starting server on: http://{ip}");
    +144
    +145    HttpServer::new(move || {
    +146        App::new()
    +147            .wrap(actix_middleware::Logger::default())
    +148            .wrap(
    +149                actix_middleware::DefaultHeaders::new()
    +150                    .add(("Permissions-Policy", "interest-cohort=()")),
    +151            )
    +152            .wrap(get_identity_service(&settings))
    +153            .wrap(actix_middleware::Compress::default())
    +154            .app_data(data.clone())
    +155            .wrap(actix_middleware::NormalizePath::new(
    +156                actix_middleware::TrailingSlash::Trim,
    +157            ))
    +158            .configure(routes::services)
    +159            .app_data(get_json_err())
    +160    })
    +161    .bind(&ip)
    +162    .unwrap()
    +163    .run()
    +164    .await?;
    +165
    +166    if let Some(survey_upload_tx) = survey_upload_tx {
    +167        survey_upload_tx.send(()).unwrap();
    +168    }
    +169
    +170    if let Some(demo_user) = demo_user {
    +171        demo_user.0.abort();
    +172        demo_user.1.await.unwrap();
    +173    }
    +174
    +175    if let Some(update_easy_captcha) = update_easy_captcha {
    +176        update_easy_captcha.0.abort();
    +177        update_easy_captcha.1.await.unwrap();
    +178    }
    +179
    +180    if let Some(survey_upload_handle) = survey_upload_handle {
    +181        survey_upload_handle.await.unwrap();
    +182    }
    +183
    +184    Ok(())
    +185}
    +186
    +187pub fn get_json_err() -> JsonConfig {
    +188    JsonConfig::default().error_handler(|err, _| {
    +189        //debug!("JSON deserialization error: {:?}", &err);
    +190        InternalError::new(err, StatusCode::BAD_REQUEST).into()
    +191    })
    +192}
    +193
    +194pub fn get_identity_service(
    +195    settings: &Settings,
    +196) -> IdentityService<CookieIdentityPolicy> {
    +197    let cookie_secret = &settings.server.cookie_secret;
    +198    IdentityService::new(
    +199        CookieIdentityPolicy::new(cookie_secret.as_bytes())
    +200            .name("Authorization")
    +201            //TODO change cookie age
    +202            .max_age_secs(216000)
    +203            .domain(&settings.server.domain)
    +204            .secure(false),
    +205    )
    +206}
    +207
    +208#[cfg(test)]
    +209mod test {
    +210    #[test]
    +211    fn version_source_code_url_works() {
    +212        assert_eq!(
    +213            &*crate::SOURCE_FILES_OF_INSTANCE,
    +214            &format!(
    +215                "https://github.com/mCaptcha/mCaptcha/tree/{}",
    +216                crate::GIT_COMMIT_HASH
    +217            )
    +218        );
    +219    }
    +220}
    \ 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 bf64a941..18933162 100644 --- a/src/mcaptcha/pages/auth/login.rs.html +++ b/src/mcaptcha/pages/auth/login.rs.html @@ -1,69 +1,33 @@ -login.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::{HttpResponse, Responder};
    -use lazy_static::lazy_static;
    -use my_codegen::get;
    -use sailfish::TemplateOnce;
    -
    -use crate::PAGES;
    -
    -#[derive(Clone, TemplateOnce)]
    -#[template(path = "auth/login/index.html")]
    -struct IndexPage;
    -const PAGE: &str = "Login";
    -
    -impl Default for IndexPage {
    -    fn default() -> Self {
    -        IndexPage
    -    }
    -}
    -
    -lazy_static! {
    -    static ref INDEX: String = IndexPage.render_once().unwrap();
    -}
    -
    -#[get(path = "PAGES.auth.login")]
    -pub async fn login() -> impl Responder {
    -    HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(&**INDEX)
    -}
    -
    \ No newline at end of file +login.rs - source

    mcaptcha/pages/auth/
    login.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::{HttpResponse, Responder};
    +7use lazy_static::lazy_static;
    +8use my_codegen::get;
    +9use sailfish::TemplateOnce;
    +10
    +11use crate::PAGES;
    +12
    +13#[derive(Clone, TemplateOnce)]
    +14#[template(path = "auth/login/index.html")]
    +15struct IndexPage;
    +16const PAGE: &str = "Login";
    +17
    +18impl Default for IndexPage {
    +19    fn default() -> Self {
    +20        IndexPage
    +21    }
    +22}
    +23
    +24lazy_static! {
    +25    static ref INDEX: String = IndexPage.render_once().unwrap();
    +26}
    +27
    +28#[get(path = "PAGES.auth.login")]
    +29pub async fn login() -> impl Responder {
    +30    HttpResponse::Ok()
    +31        .content_type("text/html; charset=utf-8")
    +32        .body(&**INDEX)
    +33}
    \ 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 3a710cb2..4e049cae 100644 --- a/src/mcaptcha/pages/auth/mod.rs.html +++ b/src/mcaptcha/pages/auth/mod.rs.html @@ -1,101 +1,49 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -pub mod login;
    -pub mod register;
    -pub mod sudo;
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(login::login);
    -    cfg.service(register::join);
    -}
    -
    -pub mod routes {
    -    use actix_auth_middleware::GetLoginRoute;
    -
    -    pub struct Auth {
    -        pub login: &'static str,
    -        pub join: &'static str,
    -    }
    -    impl Auth {
    -        pub const fn new() -> Auth {
    -            Auth {
    -                login: "/login",
    -                join: "/join",
    -            }
    -        }
    -
    -        pub const fn get_sitemap() -> [&'static str; 2] {
    -            const AUTH: Auth = Auth::new();
    -            [AUTH.login, AUTH.join]
    -        }
    -    }
    -
    -    impl GetLoginRoute for Auth {
    -        fn get_login_route(&self, src: Option<&str>) -> String {
    -            if let Some(redirect_to) = src {
    -                format!(
    -                    "{}?redirect_to={}",
    -                    self.login,
    -                    urlencoding::encode(redirect_to)
    -                )
    -            } else {
    -                self.login.to_string()
    -            }
    -        }
    -    }
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/pages/auth/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6pub mod login;
    +7pub mod register;
    +8pub mod sudo;
    +9
    +10pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +11    cfg.service(login::login);
    +12    cfg.service(register::join);
    +13}
    +14
    +15pub mod routes {
    +16    use actix_auth_middleware::GetLoginRoute;
    +17
    +18    pub struct Auth {
    +19        pub login: &'static str,
    +20        pub join: &'static str,
    +21    }
    +22    impl Auth {
    +23        pub const fn new() -> Auth {
    +24            Auth {
    +25                login: "/login",
    +26                join: "/join",
    +27            }
    +28        }
    +29
    +30        pub const fn get_sitemap() -> [&'static str; 2] {
    +31            const AUTH: Auth = Auth::new();
    +32            [AUTH.login, AUTH.join]
    +33        }
    +34    }
    +35
    +36    impl GetLoginRoute for Auth {
    +37        fn get_login_route(&self, src: Option<&str>) -> String {
    +38            if let Some(redirect_to) = src {
    +39                format!(
    +40                    "{}?redirect_to={}",
    +41                    self.login,
    +42                    urlencoding::encode(redirect_to)
    +43                )
    +44            } else {
    +45                self.login.to_string()
    +46            }
    +47        }
    +48    }
    +49}
    \ 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 0829ff26..142fd844 100644 --- a/src/mcaptcha/pages/auth/register.rs.html +++ b/src/mcaptcha/pages/auth/register.rs.html @@ -1,65 +1,31 @@ -register.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::{HttpResponse, Responder};
    -use lazy_static::lazy_static;
    -use sailfish::TemplateOnce;
    -
    -#[derive(Clone, TemplateOnce)]
    -#[template(path = "auth/register/index.html")]
    -struct IndexPage;
    -
    -const PAGE: &str = "Join";
    -
    -impl Default for IndexPage {
    -    fn default() -> Self {
    -        IndexPage
    -    }
    -}
    -
    -lazy_static! {
    -    static ref INDEX: String = IndexPage.render_once().unwrap();
    -}
    -
    -#[my_codegen::get(path = "crate::PAGES.auth.join")]
    -pub async fn join() -> impl Responder {
    -    HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(&**INDEX)
    -}
    -
    \ No newline at end of file +register.rs - source

    mcaptcha/pages/auth/
    register.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::{HttpResponse, Responder};
    +7use lazy_static::lazy_static;
    +8use sailfish::TemplateOnce;
    +9
    +10#[derive(Clone, TemplateOnce)]
    +11#[template(path = "auth/register/index.html")]
    +12struct IndexPage;
    +13
    +14const PAGE: &str = "Join";
    +15
    +16impl Default for IndexPage {
    +17    fn default() -> Self {
    +18        IndexPage
    +19    }
    +20}
    +21
    +22lazy_static! {
    +23    static ref INDEX: String = IndexPage.render_once().unwrap();
    +24}
    +25
    +26#[my_codegen::get(path = "crate::PAGES.auth.join")]
    +27pub async fn join() -> impl Responder {
    +28    HttpResponse::Ok()
    +29        .content_type("text/html; charset=utf-8")
    +30        .body(&**INDEX)
    +31}
    \ 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 a25ad3d0..70761c0b 100644 --- a/src/mcaptcha/pages/auth/sudo.rs.html +++ b/src/mcaptcha/pages/auth/sudo.rs.html @@ -1,69 +1,33 @@ -sudo.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::fmt::Display;
    -
    -use sailfish::runtime::Render;
    -use sailfish::TemplateOnce;
    -
    -#[derive(Clone, TemplateOnce)]
    -#[template(path = "auth/sudo/index.html")]
    -pub struct SudoPage<'a, K, V>
    -where
    -    K: Display + Render,
    -    V: Display + Render,
    -{
    -    url: &'a str,
    -    data: Option<Vec<(K, V)>>,
    -}
    -
    -pub const PAGE: &str = "Confirm Access";
    -
    -impl<'a, K, V> SudoPage<'a, K, V>
    -where
    -    K: Display + Render,
    -    V: Display + Render,
    -{
    -    //pub fn new(url: &'a str, data: Option<Vec<(&'a str, &'a str)>>) -> Self {
    -    pub fn new(url: &'a str, data: Option<Vec<(K, V)>>) -> Self {
    -        Self { url, data }
    -    }
    -}
    -
    \ No newline at end of file +sudo.rs - source

    mcaptcha/pages/auth/
    sudo.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::fmt::Display;
    +7
    +8use sailfish::runtime::Render;
    +9use sailfish::TemplateOnce;
    +10
    +11#[derive(Clone, TemplateOnce)]
    +12#[template(path = "auth/sudo/index.html")]
    +13pub struct SudoPage<'a, K, V>
    +14where
    +15    K: Display + Render,
    +16    V: Display + Render,
    +17{
    +18    url: &'a str,
    +19    data: Option<Vec<(K, V)>>,
    +20}
    +21
    +22pub const PAGE: &str = "Confirm Access";
    +23
    +24impl<'a, K, V> SudoPage<'a, K, V>
    +25where
    +26    K: Display + Render,
    +27    V: Display + Render,
    +28{
    +29    //pub fn new(url: &'a str, data: Option<Vec<(&'a str, &'a str)>>) -> Self {
    +30    pub fn new(url: &'a str, data: Option<Vec<(K, V)>>) -> Self {
    +31        Self { url, data }
    +32    }
    +33}
    \ No newline at end of file diff --git a/src/mcaptcha/pages/errors.rs.html b/src/mcaptcha/pages/errors.rs.html index 40b3ad92..484686c6 100644 --- a/src/mcaptcha/pages/errors.rs.html +++ b/src/mcaptcha/pages/errors.rs.html @@ -1,219 +1,108 @@ -errors.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::{web, HttpResponse, Responder};
    -use lazy_static::lazy_static;
    -use sailfish::TemplateOnce;
    -
    -use crate::errors::PageError;
    -
    -#[derive(Clone, TemplateOnce)]
    -#[template(path = "errors/index.html")]
    -struct ErrorPage<'a> {
    -    title: &'a str,
    -    message: &'a str,
    -}
    -
    -const PAGE: &str = "Error";
    -
    -impl<'a> ErrorPage<'a> {
    -    fn new(title: &'a str, message: &'a str) -> Self {
    -        ErrorPage { title, message }
    -    }
    -}
    -
    -lazy_static! {
    -    static ref INTERNAL_SERVER_ERROR_BODY: String = ErrorPage::new(
    -        "Internal Server Error",
    -        &format!("{}", PageError::InternalServerError),
    -    )
    -    .render_once()
    -    .unwrap();
    -    static ref UNKNOWN_ERROR_BODY: String = ErrorPage::new(
    -        "Something went wrong",
    -        &format!("{}", PageError::InternalServerError),
    -    )
    -    .render_once()
    -    .unwrap();
    -}
    -
    -const ERROR_ROUTE: &str = "/error/{id}";
    -
    -#[my_codegen::get(path = "ERROR_ROUTE")]
    -async fn error(path: web::Path<usize>) -> impl Responder {
    -    let resp = match path.into_inner() {
    -        500 => HttpResponse::InternalServerError()
    -            .content_type("text/html; charset=utf-8")
    -            .body(&**INTERNAL_SERVER_ERROR_BODY),
    -
    -        _ => HttpResponse::InternalServerError()
    -            .content_type("text/html; charset=utf-8")
    -            .body(&**UNKNOWN_ERROR_BODY),
    -    };
    -
    -    resp
    -}
    -
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    cfg.service(error);
    -}
    -
    -pub mod routes {
    -    pub struct Errors {
    -        pub internal_server_error: &'static str,
    -        pub unknown_error: &'static str,
    -    }
    -
    -    impl Errors {
    -        pub const fn new() -> Self {
    -            Errors {
    -                internal_server_error: "/error/500",
    -                unknown_error: "/error/007",
    -            }
    -        }
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use actix_web::{http::StatusCode, test, App};
    -
    -    use super::*;
    -    use crate::PAGES;
    -
    -    #[actix_rt::test]
    -    async fn error_pages_work() {
    -        let app = test::init_service(App::new().configure(services)).await;
    -
    -        let resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(PAGES.errors.internal_server_error)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::INTERNAL_SERVER_ERROR);
    -
    -        let resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(PAGES.errors.unknown_error)
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::INTERNAL_SERVER_ERROR);
    -    }
    -}
    -
    \ No newline at end of file +errors.rs - source

    mcaptcha/pages/
    errors.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::{web, HttpResponse, Responder};
    +7use lazy_static::lazy_static;
    +8use sailfish::TemplateOnce;
    +9
    +10use crate::errors::PageError;
    +11
    +12#[derive(Clone, TemplateOnce)]
    +13#[template(path = "errors/index.html")]
    +14struct ErrorPage<'a> {
    +15    title: &'a str,
    +16    message: &'a str,
    +17}
    +18
    +19const PAGE: &str = "Error";
    +20
    +21impl<'a> ErrorPage<'a> {
    +22    fn new(title: &'a str, message: &'a str) -> Self {
    +23        ErrorPage { title, message }
    +24    }
    +25}
    +26
    +27lazy_static! {
    +28    static ref INTERNAL_SERVER_ERROR_BODY: String = ErrorPage::new(
    +29        "Internal Server Error",
    +30        &format!("{}", PageError::InternalServerError),
    +31    )
    +32    .render_once()
    +33    .unwrap();
    +34    static ref UNKNOWN_ERROR_BODY: String = ErrorPage::new(
    +35        "Something went wrong",
    +36        &format!("{}", PageError::InternalServerError),
    +37    )
    +38    .render_once()
    +39    .unwrap();
    +40}
    +41
    +42const ERROR_ROUTE: &str = "/error/{id}";
    +43
    +44#[my_codegen::get(path = "ERROR_ROUTE")]
    +45async fn error(path: web::Path<usize>) -> impl Responder {
    +46    let resp = match path.into_inner() {
    +47        500 => HttpResponse::InternalServerError()
    +48            .content_type("text/html; charset=utf-8")
    +49            .body(&**INTERNAL_SERVER_ERROR_BODY),
    +50
    +51        _ => HttpResponse::InternalServerError()
    +52            .content_type("text/html; charset=utf-8")
    +53            .body(&**UNKNOWN_ERROR_BODY),
    +54    };
    +55
    +56    resp
    +57}
    +58
    +59pub fn services(cfg: &mut web::ServiceConfig) {
    +60    cfg.service(error);
    +61}
    +62
    +63pub mod routes {
    +64    pub struct Errors {
    +65        pub internal_server_error: &'static str,
    +66        pub unknown_error: &'static str,
    +67    }
    +68
    +69    impl Errors {
    +70        pub const fn new() -> Self {
    +71            Errors {
    +72                internal_server_error: "/error/500",
    +73                unknown_error: "/error/007",
    +74            }
    +75        }
    +76    }
    +77}
    +78
    +79#[cfg(test)]
    +80mod tests {
    +81    use actix_web::{http::StatusCode, test, App};
    +82
    +83    use super::*;
    +84    use crate::PAGES;
    +85
    +86    #[actix_rt::test]
    +87    async fn error_pages_work() {
    +88        let app = test::init_service(App::new().configure(services)).await;
    +89
    +90        let resp = test::call_service(
    +91            &app,
    +92            test::TestRequest::get()
    +93                .uri(PAGES.errors.internal_server_error)
    +94                .to_request(),
    +95        )
    +96        .await;
    +97        assert_eq!(resp.status(), StatusCode::INTERNAL_SERVER_ERROR);
    +98
    +99        let resp = test::call_service(
    +100            &app,
    +101            test::TestRequest::get()
    +102                .uri(PAGES.errors.unknown_error)
    +103                .to_request(),
    +104        )
    +105        .await;
    +106        assert_eq!(resp.status(), StatusCode::INTERNAL_SERVER_ERROR);
    +107    }
    +108}
    \ No newline at end of file diff --git a/src/mcaptcha/pages/mod.rs.html b/src/mcaptcha/pages/mod.rs.html index b1107887..d25c9484 100644 --- a/src/mcaptcha/pages/mod.rs.html +++ b/src/mcaptcha/pages/mod.rs.html @@ -1,229 +1,112 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_auth_middleware::Authentication;
    -use actix_web::web::ServiceConfig;
    -
    -mod auth;
    -pub mod errors;
    -mod panel;
    -pub mod routes;
    -mod sitemap;
    -
    -pub const NAME: &str = "mCaptcha";
    -
    -pub fn services(cfg: &mut ServiceConfig) {
    -    auth::services(cfg);
    -    panel::services(cfg);
    -    errors::services(cfg);
    -    cfg.service(sitemap::sitemap);
    -}
    -
    -pub fn get_middleware() -> Authentication<routes::Routes> {
    -    Authentication::with_identity(routes::ROUTES)
    -}
    -
    -#[cfg(not(tarpaulin_include))]
    -#[cfg(test)]
    -mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use super::*;
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn protected_pages_templates_work_pg_test() {
    -        let data = pg::get_data().await;
    -        protected_pages_templates_work(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn protected_pages_templates_work_maria_test() {
    -        let data = maria::get_data().await;
    -        protected_pages_templates_work(data).await;
    -    }
    -
    -    async fn protected_pages_templates_work(data: ArcData) {
    -        const NAME: &str = "templateuser";
    -        const PASSWORD: &str = "longpassword";
    -        const EMAIL: &str = "templateuser@a.com";
    -
    -        let data = &data;
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -
    -        let app = get_app!(data).await;
    -
    -        let edit_sitekey_url = PAGES.panel.sitekey.get_edit_advance(&token_key.key);
    -        let delete_sitekey_url = PAGES.panel.sitekey.get_delete(&token_key.key);
    -        let urls = [
    -            PAGES.home,
    -            PAGES.panel.sitekey.add_advance,
    -            PAGES.panel.sitekey.add_easy,
    -            PAGES.panel.sitekey.list,
    -            PAGES.panel.notifications,
    -            PAGES.panel.settings.home,
    -            PAGES.panel.settings.delete_account,
    -            PAGES.panel.settings.update_secret,
    -            &delete_sitekey_url,
    -            &edit_sitekey_url,
    -        ];
    -
    -        for url in urls.iter() {
    -            let resp =
    -                test::call_service(&app, test::TestRequest::get().uri(url).to_request())
    -                    .await;
    -            assert_eq!(resp.status(), StatusCode::FOUND);
    -
    -            let authenticated_resp = test::call_service(
    -                &app,
    -                test::TestRequest::get()
    -                    .uri(url)
    -                    .cookie(cookies.clone())
    -                    .to_request(),
    -            )
    -            .await;
    -
    -            assert_eq!(authenticated_resp.status(), StatusCode::OK);
    -        }
    -
    -        delete_user(data, NAME).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn public_pages_tempaltes_work() {
    -        let app = test::init_service(App::new().configure(services)).await;
    -        let urls = [PAGES.auth.login, PAGES.auth.join, PAGES.sitemap];
    -
    -        for url in urls.iter() {
    -            let resp =
    -                test::call_service(&app, test::TestRequest::get().uri(url).to_request())
    -                    .await;
    -
    -            assert_eq!(resp.status(), StatusCode::OK);
    -        }
    -    }
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/pages/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_auth_middleware::Authentication;
    +7use actix_web::web::ServiceConfig;
    +8
    +9mod auth;
    +10pub mod errors;
    +11mod panel;
    +12pub mod routes;
    +13mod sitemap;
    +14
    +15pub const NAME: &str = "mCaptcha";
    +16
    +17pub fn services(cfg: &mut ServiceConfig) {
    +18    auth::services(cfg);
    +19    panel::services(cfg);
    +20    errors::services(cfg);
    +21    cfg.service(sitemap::sitemap);
    +22}
    +23
    +24pub fn get_middleware() -> Authentication<routes::Routes> {
    +25    Authentication::with_identity(routes::ROUTES)
    +26}
    +27
    +28#[cfg(test)]
    +29mod tests {
    +30    use actix_web::http::StatusCode;
    +31    use actix_web::test;
    +32
    +33    use super::*;
    +34    use crate::tests::*;
    +35    use crate::*;
    +36
    +37    #[actix_rt::test]
    +38    async fn protected_pages_templates_work_pg_test() {
    +39        let data = pg::get_data().await;
    +40        protected_pages_templates_work(data).await;
    +41    }
    +42
    +43    #[actix_rt::test]
    +44    async fn protected_pages_templates_work_maria_test() {
    +45        let data = maria::get_data().await;
    +46        protected_pages_templates_work(data).await;
    +47    }
    +48
    +49    async fn protected_pages_templates_work(data: ArcData) {
    +50        const NAME: &str = "templateuser";
    +51        const PASSWORD: &str = "longpassword";
    +52        const EMAIL: &str = "templateuser@a.com";
    +53
    +54        let data = &data;
    +55        delete_user(data, NAME).await;
    +56
    +57        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +58        let (_, signin_resp, token_key) = add_levels_util(data, NAME, PASSWORD).await;
    +59        let cookies = get_cookie!(signin_resp);
    +60
    +61        let app = get_app!(data).await;
    +62
    +63        let edit_sitekey_url = PAGES.panel.sitekey.get_edit_advance(&token_key.key);
    +64        let delete_sitekey_url = PAGES.panel.sitekey.get_delete(&token_key.key);
    +65        let urls = [
    +66            PAGES.home,
    +67            PAGES.panel.sitekey.add_advance,
    +68            PAGES.panel.sitekey.add_easy,
    +69            PAGES.panel.sitekey.list,
    +70            PAGES.panel.notifications,
    +71            PAGES.panel.settings.home,
    +72            PAGES.panel.settings.delete_account,
    +73            PAGES.panel.settings.update_secret,
    +74            &delete_sitekey_url,
    +75            &edit_sitekey_url,
    +76        ];
    +77
    +78        for url in urls.iter() {
    +79            let resp =
    +80                test::call_service(&app, test::TestRequest::get().uri(url).to_request())
    +81                    .await;
    +82            assert_eq!(resp.status(), StatusCode::FOUND);
    +83
    +84            let authenticated_resp = test::call_service(
    +85                &app,
    +86                test::TestRequest::get()
    +87                    .uri(url)
    +88                    .cookie(cookies.clone())
    +89                    .to_request(),
    +90            )
    +91            .await;
    +92
    +93            assert_eq!(authenticated_resp.status(), StatusCode::OK);
    +94        }
    +95
    +96        delete_user(data, NAME).await;
    +97    }
    +98
    +99    #[actix_rt::test]
    +100    async fn public_pages_tempaltes_work() {
    +101        let app = test::init_service(App::new().configure(services)).await;
    +102        let urls = [PAGES.auth.login, PAGES.auth.join, PAGES.sitemap];
    +103
    +104        for url in urls.iter() {
    +105            let resp =
    +106                test::call_service(&app, test::TestRequest::get().uri(url).to_request())
    +107                    .await;
    +108
    +109            assert_eq!(resp.status(), StatusCode::OK);
    +110        }
    +111    }
    +112}
    \ 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 5bd68b92..5ff1030d 100644 --- a/src/mcaptcha/pages/panel/mod.rs.html +++ b/src/mcaptcha/pages/panel/mod.rs.html @@ -1,189 +1,93 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{HttpResponse, Responder};
    -use sailfish::TemplateOnce;
    -
    -mod notifications;
    -mod settings;
    -pub mod sitekey;
    -mod utils;
    -
    -use db_core::Captcha;
    -
    -use crate::errors::PageResult;
    -use crate::AppData;
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/index.html")]
    -pub struct IndexPage {
    -    sitekeys: Vec<Captcha>,
    -}
    -
    -impl IndexPage {
    -    fn new(sitekeys: Vec<Captcha>) -> Self {
    -        IndexPage { sitekeys }
    -    }
    -}
    -
    -const PAGE: &str = "Dashboard";
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.home",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -async fn panel(data: AppData, id: Identity) -> PageResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let sitekeys = data.db.get_all_user_captchas(&username).await?;
    -    let body = IndexPage::new(sitekeys).render_once().unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(panel);
    -    settings::services(cfg);
    -    sitekey::services(cfg);
    -    utils::services(cfg);
    -    cfg.service(notifications::notifications);
    -}
    -
    -pub mod routes {
    -    use super::settings::routes::Settings;
    -    use super::sitekey::routes::Sitekey;
    -    use super::utils::routes::Utils;
    -
    -    pub struct Panel {
    -        pub home: &'static str,
    -        pub sitekey: Sitekey,
    -        pub notifications: &'static str,
    -        pub settings: Settings,
    -        pub utils: Utils,
    -    }
    -
    -    impl Panel {
    -        pub const fn new() -> Self {
    -            Panel {
    -                home: "/",
    -                sitekey: Sitekey::new(),
    -                notifications: "/notifications",
    -                settings: Settings::new(),
    -                utils: Utils::new(),
    -            }
    -        }
    -
    -        pub const fn get_sitemap() -> [&'static str; 6] {
    -            const PANEL: Panel = Panel::new();
    -            const S: [&str; 2] = Sitekey::get_sitemap();
    -
    -            [
    -                PANEL.home,
    -                PANEL.notifications,
    -                S[0],
    -                S[1],
    -                Settings::get_sitemap()[0],
    -                Utils::get_sitemap()[0],
    -            ]
    -        }
    -    }
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/pages/panel/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{HttpResponse, Responder};
    +8use sailfish::TemplateOnce;
    +9
    +10mod notifications;
    +11mod settings;
    +12pub mod sitekey;
    +13mod utils;
    +14
    +15use db_core::Captcha;
    +16
    +17use crate::errors::PageResult;
    +18use crate::AppData;
    +19
    +20#[derive(TemplateOnce, Clone)]
    +21#[template(path = "panel/index.html")]
    +22pub struct IndexPage {
    +23    sitekeys: Vec<Captcha>,
    +24}
    +25
    +26impl IndexPage {
    +27    fn new(sitekeys: Vec<Captcha>) -> Self {
    +28        IndexPage { sitekeys }
    +29    }
    +30}
    +31
    +32const PAGE: &str = "Dashboard";
    +33
    +34#[my_codegen::get(
    +35    path = "crate::PAGES.panel.home",
    +36    wrap = "crate::pages::get_middleware()"
    +37)]
    +38async fn panel(data: AppData, id: Identity) -> PageResult<impl Responder> {
    +39    let username = id.identity().unwrap();
    +40    let sitekeys = data.db.get_all_user_captchas(&username).await?;
    +41    let body = IndexPage::new(sitekeys).render_once().unwrap();
    +42    Ok(HttpResponse::Ok()
    +43        .content_type("text/html; charset=utf-8")
    +44        .body(body))
    +45}
    +46
    +47pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +48    cfg.service(panel);
    +49    settings::services(cfg);
    +50    sitekey::services(cfg);
    +51    utils::services(cfg);
    +52    cfg.service(notifications::notifications);
    +53}
    +54
    +55pub mod routes {
    +56    use super::settings::routes::Settings;
    +57    use super::sitekey::routes::Sitekey;
    +58    use super::utils::routes::Utils;
    +59
    +60    pub struct Panel {
    +61        pub home: &'static str,
    +62        pub sitekey: Sitekey,
    +63        pub notifications: &'static str,
    +64        pub settings: Settings,
    +65        pub utils: Utils,
    +66    }
    +67
    +68    impl Panel {
    +69        pub const fn new() -> Self {
    +70            Panel {
    +71                home: "/",
    +72                sitekey: Sitekey::new(),
    +73                notifications: "/notifications",
    +74                settings: Settings::new(),
    +75                utils: Utils::new(),
    +76            }
    +77        }
    +78
    +79        pub const fn get_sitemap() -> [&'static str; 6] {
    +80            const PANEL: Panel = Panel::new();
    +81            const S: [&str; 2] = Sitekey::get_sitemap();
    +82
    +83            [
    +84                PANEL.home,
    +85                PANEL.notifications,
    +86                S[0],
    +87                S[1],
    +88                Settings::get_sitemap()[0],
    +89                Utils::get_sitemap()[0],
    +90            ]
    +91        }
    +92    }
    +93}
    \ 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 2ac9663d..58386f61 100644 --- a/src/mcaptcha/pages/panel/notifications.rs.html +++ b/src/mcaptcha/pages/panel/notifications.rs.html @@ -1,253 +1,125 @@ -notifications.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{HttpResponse, Responder};
    -use sailfish::TemplateOnce;
    -use sqlx::types::time::OffsetDateTime;
    -
    -use crate::date::Date;
    -use crate::errors::PageResult;
    -use crate::AppData;
    -
    -#[derive(TemplateOnce)]
    -#[template(path = "panel/notifications/index.html")]
    -pub struct IndexPage {
    -    /// notifications
    -    n: Vec<Notification>,
    -}
    -
    -impl IndexPage {
    -    fn new(n: Vec<Notification>) -> Self {
    -        IndexPage { n }
    -    }
    -}
    -
    -pub struct Notification {
    -    pub name: String,
    -    pub heading: String,
    -    pub message: String,
    -    pub received: OffsetDateTime,
    -    pub id: i32,
    -}
    -
    -impl From<db_core::Notification> for Notification {
    -    fn from(n: db_core::Notification) -> Self {
    -        Notification {
    -            name: n.name.unwrap(),
    -            heading: n.heading.unwrap(),
    -            received: OffsetDateTime::from_unix_timestamp(n.received.unwrap()).unwrap(),
    -            id: n.id.unwrap(),
    -            message: n.message.unwrap(),
    -        }
    -    }
    -}
    -
    -impl Notification {
    -    pub fn print_date(&self) -> String {
    -        Date::format(&self.received)
    -    }
    -}
    -
    -const PAGE: &str = "Notifications";
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.notifications",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn notifications(data: AppData, id: Identity) -> PageResult<impl Responder> {
    -    let receiver = id.identity().unwrap();
    -    // TODO handle error where payload.to doesn't exist
    -
    -    //    let mut notifications = runner::get_notification(&data, &receiver).await?;
    -    let mut notifications = data.db.get_all_unread_notifications(&receiver).await?;
    -    let notifications = notifications.drain(0..).map(|x| x.into()).collect();
    -
    -    let body = IndexPage::new(notifications).render_once().unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use super::*;
    -    use crate::date::*;
    -
    -    #[test]
    -    fn print_date_test() {
    -        let mut n = Notification {
    -            received: OffsetDateTime::now_utc(),
    -            name: String::default(),
    -            heading: String::default(),
    -            message: String::default(),
    -            id: 1,
    -        };
    -
    -        let timestamp = n.received.unix_timestamp();
    -        println!("timestamp: {}", timestamp);
    -
    -        // seconds test
    -        assert!(n.print_date().contains("seconds ago"));
    -        n.received = OffsetDateTime::from_unix_timestamp(timestamp - 5).unwrap();
    -        assert!(n.print_date().contains("seconds ago"));
    -
    -        // minutes test
    -        n.received =
    -            OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 2).unwrap();
    -        assert!(n.print_date().contains("minutes ago"));
    -        n.received =
    -            OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 56).unwrap();
    -        assert!(n.print_date().contains("minutes ago"));
    -
    -        // hours test
    -        n.received = OffsetDateTime::from_unix_timestamp(timestamp - HOUR).unwrap();
    -        assert!(n.print_date().contains("hours ago"));
    -        n.received = OffsetDateTime::from_unix_timestamp(timestamp - HOUR * 23).unwrap();
    -        assert!(n.print_date().contains("hours ago"));
    -
    -        // days test
    -        n.received = OffsetDateTime::from_unix_timestamp(timestamp - 2 * WEEK).unwrap();
    -        assert!(n.print_date().contains("days ago"));
    -
    -        // date test
    -        n.received = OffsetDateTime::from_unix_timestamp(timestamp - 6 * WEEK).unwrap();
    -        let date = format!(
    -            "{}{}{}",
    -            n.received.year(),
    -            n.received.month(),
    -            n.received.date()
    -        );
    -        assert!(n.print_date().contains(&date))
    -    }
    -}
    -
    \ No newline at end of file +notifications.rs - source

    mcaptcha/pages/panel/
    notifications.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{HttpResponse, Responder};
    +8use sailfish::TemplateOnce;
    +9use sqlx::types::time::OffsetDateTime;
    +10
    +11use crate::date::Date;
    +12use crate::errors::PageResult;
    +13use crate::AppData;
    +14
    +15#[derive(TemplateOnce)]
    +16#[template(path = "panel/notifications/index.html")]
    +17pub struct IndexPage {
    +18    /// notifications
    +19    n: Vec<Notification>,
    +20}
    +21
    +22impl IndexPage {
    +23    fn new(n: Vec<Notification>) -> Self {
    +24        IndexPage { n }
    +25    }
    +26}
    +27
    +28pub struct Notification {
    +29    pub name: String,
    +30    pub heading: String,
    +31    pub message: String,
    +32    pub received: OffsetDateTime,
    +33    pub id: i32,
    +34}
    +35
    +36impl From<db_core::Notification> for Notification {
    +37    fn from(n: db_core::Notification) -> Self {
    +38        Notification {
    +39            name: n.name.unwrap(),
    +40            heading: n.heading.unwrap(),
    +41            received: OffsetDateTime::from_unix_timestamp(n.received.unwrap()).unwrap(),
    +42            id: n.id.unwrap(),
    +43            message: n.message.unwrap(),
    +44        }
    +45    }
    +46}
    +47
    +48impl Notification {
    +49    pub fn print_date(&self) -> String {
    +50        Date::format(&self.received)
    +51    }
    +52}
    +53
    +54const PAGE: &str = "Notifications";
    +55
    +56#[my_codegen::get(
    +57    path = "crate::PAGES.panel.notifications",
    +58    wrap = "crate::pages::get_middleware()"
    +59)]
    +60pub async fn notifications(data: AppData, id: Identity) -> PageResult<impl Responder> {
    +61    let receiver = id.identity().unwrap();
    +62    // TODO handle error where payload.to doesn't exist
    +63
    +64    //    let mut notifications = runner::get_notification(&data, &receiver).await?;
    +65    let mut notifications = data.db.get_all_unread_notifications(&receiver).await?;
    +66    let notifications = notifications.drain(0..).map(|x| x.into()).collect();
    +67
    +68    let body = IndexPage::new(notifications).render_once().unwrap();
    +69    Ok(HttpResponse::Ok()
    +70        .content_type("text/html; charset=utf-8")
    +71        .body(body))
    +72}
    +73
    +74#[cfg(test)]
    +75mod tests {
    +76    use super::*;
    +77    use crate::date::*;
    +78
    +79    #[test]
    +80    fn print_date_test() {
    +81        let mut n = Notification {
    +82            received: OffsetDateTime::now_utc(),
    +83            name: String::default(),
    +84            heading: String::default(),
    +85            message: String::default(),
    +86            id: 1,
    +87        };
    +88
    +89        let timestamp = n.received.unix_timestamp();
    +90        println!("timestamp: {}", timestamp);
    +91
    +92        // seconds test
    +93        assert!(n.print_date().contains("seconds ago"));
    +94        n.received = OffsetDateTime::from_unix_timestamp(timestamp - 5).unwrap();
    +95        assert!(n.print_date().contains("seconds ago"));
    +96
    +97        // minutes test
    +98        n.received =
    +99            OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 2).unwrap();
    +100        assert!(n.print_date().contains("minutes ago"));
    +101        n.received =
    +102            OffsetDateTime::from_unix_timestamp(timestamp - MINUTE * 56).unwrap();
    +103        assert!(n.print_date().contains("minutes ago"));
    +104
    +105        // hours test
    +106        n.received = OffsetDateTime::from_unix_timestamp(timestamp - HOUR).unwrap();
    +107        assert!(n.print_date().contains("hours ago"));
    +108        n.received = OffsetDateTime::from_unix_timestamp(timestamp - HOUR * 23).unwrap();
    +109        assert!(n.print_date().contains("hours ago"));
    +110
    +111        // days test
    +112        n.received = OffsetDateTime::from_unix_timestamp(timestamp - 2 * WEEK).unwrap();
    +113        assert!(n.print_date().contains("days ago"));
    +114
    +115        // date test
    +116        n.received = OffsetDateTime::from_unix_timestamp(timestamp - 6 * WEEK).unwrap();
    +117        let date = format!(
    +118            "{}{}{}",
    +119            n.received.year(),
    +120            n.received.month(),
    +121            n.received.date()
    +122        );
    +123        assert!(n.print_date().contains(&date))
    +124    }
    +125}
    \ 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 f396f4b7..2d4ab09f 100644 --- a/src/mcaptcha/pages/panel/settings.rs.html +++ b/src/mcaptcha/pages/panel/settings.rs.html @@ -1,205 +1,101 @@ -settings.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{HttpResponse, Responder};
    -use sailfish::TemplateOnce;
    -
    -use crate::errors::PageResult;
    -use crate::pages::auth::sudo::SudoPage;
    -use crate::AppData;
    -
    -pub mod routes {
    -    pub struct Settings {
    -        pub home: &'static str,
    -        pub delete_account: &'static str,
    -        pub update_secret: &'static str,
    -    }
    -
    -    impl Settings {
    -        pub const fn new() -> Self {
    -            Settings {
    -                home: "/settings",
    -                delete_account: "/settings/account/delete",
    -                update_secret: "/settings/secret/update",
    -            }
    -        }
    -
    -        pub const fn get_sitemap() -> [&'static str; 1] {
    -            const S: Settings = Settings::new();
    -
    -            [S.home]
    -        }
    -    }
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(settings);
    -    cfg.service(update_secret);
    -    cfg.service(delete_account);
    -}
    -
    -const PAGE: &str = "Settings";
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/settings/index.html")]
    -pub struct IndexPage<'a> {
    -    email: Option<String>,
    -    secret: String,
    -    username: &'a str,
    -}
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.settings.home",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -async fn settings(data: AppData, id: Identity) -> PageResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -
    -    let secret = data.db.get_secret(&username).await?;
    -    let secret = secret.secret;
    -    let email = data.db.get_email(&username).await?;
    -
    -    let data = IndexPage {
    -        email,
    -        secret,
    -        username: &username,
    -    };
    -
    -    let body = data.render_once().unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.settings.delete_account",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -async fn delete_account() -> impl Responder {
    -    let page = SudoPage::<u8, u8>::new(crate::V1_API_ROUTES.account.delete, None)
    -        .render_once()
    -        .unwrap();
    -    HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(page)
    -}
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.settings.update_secret",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -async fn update_secret() -> impl Responder {
    -    let page = SudoPage::<u8, u8>::new(crate::V1_API_ROUTES.account.update_secret, None)
    -        .render_once()
    -        .unwrap();
    -    HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(page)
    -}
    -
    \ No newline at end of file +settings.rs - source

    mcaptcha/pages/panel/
    settings.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{HttpResponse, Responder};
    +8use sailfish::TemplateOnce;
    +9
    +10use crate::errors::PageResult;
    +11use crate::pages::auth::sudo::SudoPage;
    +12use crate::AppData;
    +13
    +14pub mod routes {
    +15    pub struct Settings {
    +16        pub home: &'static str,
    +17        pub delete_account: &'static str,
    +18        pub update_secret: &'static str,
    +19    }
    +20
    +21    impl Settings {
    +22        pub const fn new() -> Self {
    +23            Settings {
    +24                home: "/settings",
    +25                delete_account: "/settings/account/delete",
    +26                update_secret: "/settings/secret/update",
    +27            }
    +28        }
    +29
    +30        pub const fn get_sitemap() -> [&'static str; 1] {
    +31            const S: Settings = Settings::new();
    +32
    +33            [S.home]
    +34        }
    +35    }
    +36}
    +37
    +38pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +39    cfg.service(settings);
    +40    cfg.service(update_secret);
    +41    cfg.service(delete_account);
    +42}
    +43
    +44const PAGE: &str = "Settings";
    +45
    +46#[derive(TemplateOnce, Clone)]
    +47#[template(path = "panel/settings/index.html")]
    +48pub struct IndexPage<'a> {
    +49    email: Option<String>,
    +50    secret: String,
    +51    username: &'a str,
    +52}
    +53
    +54#[my_codegen::get(
    +55    path = "crate::PAGES.panel.settings.home",
    +56    wrap = "crate::pages::get_middleware()"
    +57)]
    +58async fn settings(data: AppData, id: Identity) -> PageResult<impl Responder> {
    +59    let username = id.identity().unwrap();
    +60
    +61    let secret = data.db.get_secret(&username).await?;
    +62    let secret = secret.secret;
    +63    let email = data.db.get_email(&username).await?;
    +64
    +65    let data = IndexPage {
    +66        email,
    +67        secret,
    +68        username: &username,
    +69    };
    +70
    +71    let body = data.render_once().unwrap();
    +72    Ok(HttpResponse::Ok()
    +73        .content_type("text/html; charset=utf-8")
    +74        .body(body))
    +75}
    +76
    +77#[my_codegen::get(
    +78    path = "crate::PAGES.panel.settings.delete_account",
    +79    wrap = "crate::pages::get_middleware()"
    +80)]
    +81async fn delete_account() -> impl Responder {
    +82    let page = SudoPage::<u8, u8>::new(crate::V1_API_ROUTES.account.delete, None)
    +83        .render_once()
    +84        .unwrap();
    +85    HttpResponse::Ok()
    +86        .content_type("text/html; charset=utf-8")
    +87        .body(page)
    +88}
    +89
    +90#[my_codegen::get(
    +91    path = "crate::PAGES.panel.settings.update_secret",
    +92    wrap = "crate::pages::get_middleware()"
    +93)]
    +94async fn update_secret() -> impl Responder {
    +95    let page = SudoPage::<u8, u8>::new(crate::V1_API_ROUTES.account.update_secret, None)
    +96        .render_once()
    +97        .unwrap();
    +98    HttpResponse::Ok()
    +99        .content_type("text/html; charset=utf-8")
    +100        .body(page)
    +101}
    \ 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 2816e540..67830199 100644 --- a/src/mcaptcha/pages/panel/sitekey/add.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/add.rs.html @@ -1,159 +1,78 @@ -add.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::{HttpResponse, Responder};
    -use lazy_static::lazy_static;
    -use sailfish::TemplateOnce;
    -
    -const PAGE: &str = "Add Sitekey";
    -
    -lazy_static! {
    -    static ref ADVANCE_INDEX: String =
    -        AdvanceIndexPage::default().render_once().unwrap();
    -    static ref EASY_INDEX: String = EasyIndexPage::default().render_once().unwrap();
    -}
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/sitekey/add/advance/index.html")]
    -pub struct AdvanceIndexPage<'a> {
    -    pub levels: usize,
    -    pub form_title: &'a str,
    -    pub form_description: &'a str,
    -    pub form_duration: usize,
    -}
    -
    -impl<'a> Default for AdvanceIndexPage<'a> {
    -    fn default() -> Self {
    -        Self {
    -            levels: 1,
    -            form_description: "",
    -            form_title: PAGE,
    -            form_duration: 30,
    -        }
    -    }
    -}
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.sitekey.add_advance",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn advance() -> impl Responder {
    -    HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(&**ADVANCE_INDEX)
    -}
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/sitekey/add/novice/index.html")]
    -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>,
    -}
    -
    -impl<'a> Default for EasyIndexPage<'a> {
    -    fn default() -> Self {
    -        Self {
    -            form_description: "",
    -            peak_sustainable_traffic: None,
    -            avg_traffic: None,
    -            broke_my_site_traffic: None,
    -            form_title: PAGE,
    -        }
    -    }
    -}
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.sitekey.add_easy",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn easy() -> impl Responder {
    -    HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(&**EASY_INDEX)
    -}
    -
    \ No newline at end of file +add.rs - source

    mcaptcha/pages/panel/sitekey/
    add.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::{HttpResponse, Responder};
    +7use lazy_static::lazy_static;
    +8use sailfish::TemplateOnce;
    +9
    +10const PAGE: &str = "Add Sitekey";
    +11
    +12lazy_static! {
    +13    static ref ADVANCE_INDEX: String =
    +14        AdvanceIndexPage::default().render_once().unwrap();
    +15    static ref EASY_INDEX: String = EasyIndexPage::default().render_once().unwrap();
    +16}
    +17
    +18#[derive(TemplateOnce, Clone)]
    +19#[template(path = "panel/sitekey/add/advance/index.html")]
    +20pub struct AdvanceIndexPage<'a> {
    +21    pub levels: usize,
    +22    pub form_title: &'a str,
    +23    pub form_description: &'a str,
    +24    pub form_duration: usize,
    +25}
    +26
    +27impl<'a> Default for AdvanceIndexPage<'a> {
    +28    fn default() -> Self {
    +29        Self {
    +30            levels: 1,
    +31            form_description: "",
    +32            form_title: PAGE,
    +33            form_duration: 30,
    +34        }
    +35    }
    +36}
    +37
    +38#[my_codegen::get(
    +39    path = "crate::PAGES.panel.sitekey.add_advance",
    +40    wrap = "crate::pages::get_middleware()"
    +41)]
    +42pub async fn advance() -> impl Responder {
    +43    HttpResponse::Ok()
    +44        .content_type("text/html; charset=utf-8")
    +45        .body(&**ADVANCE_INDEX)
    +46}
    +47
    +48#[derive(TemplateOnce, Clone)]
    +49#[template(path = "panel/sitekey/add/novice/index.html")]
    +50pub struct EasyIndexPage<'a> {
    +51    pub form_description: &'a str,
    +52    pub form_title: &'a str,
    +53    pub peak_sustainable_traffic: Option<usize>,
    +54    pub avg_traffic: Option<usize>,
    +55    pub broke_my_site_traffic: Option<usize>,
    +56}
    +57
    +58impl<'a> Default for EasyIndexPage<'a> {
    +59    fn default() -> Self {
    +60        Self {
    +61            form_description: "",
    +62            peak_sustainable_traffic: None,
    +63            avg_traffic: None,
    +64            broke_my_site_traffic: None,
    +65            form_title: PAGE,
    +66        }
    +67    }
    +68}
    +69
    +70#[my_codegen::get(
    +71    path = "crate::PAGES.panel.sitekey.add_easy",
    +72    wrap = "crate::pages::get_middleware()"
    +73)]
    +74pub async fn easy() -> impl Responder {
    +75    HttpResponse::Ok()
    +76        .content_type("text/html; charset=utf-8")
    +77        .body(&**EASY_INDEX)
    +78}
    \ 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 49d6f822..bb69d211 100644 --- a/src/mcaptcha/pages/panel/sitekey/delete.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/delete.rs.html @@ -1,55 +1,26 @@ -delete.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::{web, HttpResponse, Responder};
    -use my_codegen::get;
    -use sailfish::TemplateOnce;
    -
    -use crate::pages::auth::sudo::SudoPage;
    -use crate::{PAGES, V1_API_ROUTES};
    -
    -#[get(
    -    path = "PAGES.panel.sitekey.delete",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn delete_sitekey(path: web::Path<String>) -> impl Responder {
    -    let key = path.into_inner();
    -    let data = vec![("sitekey", key)];
    -    let page = SudoPage::new(V1_API_ROUTES.captcha.delete, Some(data))
    -        .render_once()
    -        .unwrap();
    -    HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(page)
    -}
    -
    \ No newline at end of file +delete.rs - source

    mcaptcha/pages/panel/sitekey/
    delete.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::{web, HttpResponse, Responder};
    +7use my_codegen::get;
    +8use sailfish::TemplateOnce;
    +9
    +10use crate::pages::auth::sudo::SudoPage;
    +11use crate::{PAGES, V1_API_ROUTES};
    +12
    +13#[get(
    +14    path = "PAGES.panel.sitekey.delete",
    +15    wrap = "crate::pages::get_middleware()"
    +16)]
    +17pub async fn delete_sitekey(path: web::Path<String>) -> impl Responder {
    +18    let key = path.into_inner();
    +19    let data = vec![("sitekey", key)];
    +20    let page = SudoPage::new(V1_API_ROUTES.captcha.delete, Some(data))
    +21        .render_once()
    +22        .unwrap();
    +23    HttpResponse::Ok()
    +24        .content_type("text/html; charset=utf-8")
    +25        .body(page)
    +26}
    \ 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 1ccf6165..26663bdb 100644 --- a/src/mcaptcha/pages/panel/sitekey/edit.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/edit.rs.html @@ -1,417 +1,207 @@ -edit.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{http, web, HttpResponse, Responder};
    -use sailfish::TemplateOnce;
    -
    -use db_core::errors::DBError;
    -use db_core::Captcha;
    -use libmcaptcha::defense::Level;
    -
    -use crate::api::v1::mcaptcha::easy::TrafficPatternRequest;
    -use crate::errors::*;
    -use crate::AppData;
    -
    -const PAGE: &str = "Edit Sitekey";
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/sitekey/edit/advance.html")]
    -struct AdvanceEditPage {
    -    duration: u32,
    -    name: String,
    -    key: String,
    -    levels: Vec<Level>,
    -    publish_benchmarks: bool,
    -}
    -
    -impl AdvanceEditPage {
    -    fn new(
    -        config: Captcha,
    -        levels: Vec<Level>,
    -        key: String,
    -        publish_benchmarks: bool,
    -    ) -> Self {
    -        AdvanceEditPage {
    -            duration: config.duration as u32,
    -            name: config.description,
    -            levels,
    -            key,
    -            publish_benchmarks,
    -        }
    -    }
    -}
    -
    -/// route handler that renders individual views for sitekeys
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.sitekey.edit_advance",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn advance(
    -    path: web::Path<String>,
    -    data: AppData,
    -    id: Identity,
    -) -> PageResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let key = path.into_inner();
    -
    -    let config = data.db.get_captcha_config(&username, &key).await?;
    -    let levels = data.db.get_captcha_levels(Some(&username), &key).await?;
    -    let publish_benchmarks = data.db.analytics_captcha_is_published(&key).await?;
    -
    -    let body = AdvanceEditPage::new(config, levels, key, publish_benchmarks)
    -        .render_once()
    -        .unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/sitekey/edit/easy/index.html")]
    -pub struct EasyEditPage<'a> {
    -    pub form_title: &'a str,
    -    pub pattern: TrafficPatternRequest,
    -    pub key: String,
    -}
    -
    -impl<'a> EasyEditPage<'a> {
    -    pub fn new(key: String, pattern: TrafficPatternRequest) -> Self {
    -        Self {
    -            form_title: PAGE,
    -            pattern,
    -            key,
    -        }
    -    }
    -}
    -
    -/// route handler that renders individual views for sitekeys
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.sitekey.edit_easy",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn easy(
    -    path: web::Path<String>,
    -    data: AppData,
    -    id: Identity,
    -) -> PageResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let key = path.into_inner();
    -
    -    match data.db.get_traffic_pattern(&username, &key).await {
    -        Ok(c) => {
    -            let config = data.db.get_captcha_config(&username, &key).await?;
    -            let publish_benchmarks =
    -                data.db.analytics_captcha_is_published(&key).await?;
    -            let pattern = TrafficPatternRequest {
    -                peak_sustainable_traffic: c.peak_sustainable_traffic,
    -                avg_traffic: c.avg_traffic,
    -                broke_my_site_traffic: c.broke_my_site_traffic,
    -                description: config.description,
    -                publish_benchmarks,
    -            };
    -
    -            let page = EasyEditPage::new(key, pattern).render_once().unwrap();
    -            return Ok(HttpResponse::Ok()
    -                .content_type("text/html; charset=utf-8")
    -                .body(page));
    -        }
    -        Err(DBError::TrafficPatternNotFound) => {
    -            return Ok(HttpResponse::Found()
    -                .insert_header((
    -                    http::header::LOCATION,
    -                    crate::PAGES.panel.sitekey.get_edit_advance(&key),
    -                ))
    -                .finish());
    -        }
    -        Err(e) => {
    -            let e: ServiceError = e.into();
    -            Err(e.into())
    -        }
    -    }
    -}
    -
    -#[cfg(test)]
    -mod test {
    -    use actix_web::http::{header, StatusCode};
    -    use actix_web::test;
    -    use actix_web::web::Bytes;
    -
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn edit_sitekey_work_pg_test() {
    -        let data = pg::get_data().await;
    -        edit_sitekey_work(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn edit_sitekey_work_maria_test() {
    -        let data = maria::get_data().await;
    -        edit_sitekey_work(data).await;
    -    }
    -
    -    async fn edit_sitekey_work(data: ArcData) {
    -        const NAME: &str = "editsitekeyuser";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL: &str = "editsitekeyuser@a.com";
    -        let data = &data;
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -
    -        let app = get_app!(data).await;
    -
    -        let url = PAGES.panel.sitekey.get_edit_advance(&key.key);
    -
    -        let list_sitekey_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(&url)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(list_sitekey_resp.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(list_sitekey_resp).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -
    -        assert!(body.contains(&key.name));
    -
    -        assert!(body.contains(&L1.visitor_threshold.to_string()));
    -        assert!(body.contains(&L1.difficulty_factor.to_string()));
    -        assert!(body.contains(&L2.difficulty_factor.to_string()));
    -        assert!(body.contains(&L2.visitor_threshold.to_string()));
    -
    -        let easy_url = PAGES.panel.sitekey.get_edit_easy(&key.key);
    -
    -        let redirect_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(&easy_url)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -        assert_eq!(redirect_resp.status(), StatusCode::FOUND);
    -        let headers = redirect_resp.headers();
    -        assert_eq!(headers.get(header::LOCATION).unwrap(), &url);
    -    }
    -}
    -
    \ No newline at end of file +edit.rs - source

    mcaptcha/pages/panel/sitekey/
    edit.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{http, web, HttpResponse, Responder};
    +8use sailfish::TemplateOnce;
    +9
    +10use db_core::errors::DBError;
    +11use db_core::Captcha;
    +12use libmcaptcha::defense::Level;
    +13
    +14use crate::api::v1::mcaptcha::easy::TrafficPatternRequest;
    +15use crate::errors::*;
    +16use crate::AppData;
    +17
    +18const PAGE: &str = "Edit Sitekey";
    +19
    +20#[derive(TemplateOnce, Clone)]
    +21#[template(path = "panel/sitekey/edit/advance.html")]
    +22struct AdvanceEditPage {
    +23    duration: u32,
    +24    name: String,
    +25    key: String,
    +26    levels: Vec<Level>,
    +27    publish_benchmarks: bool,
    +28}
    +29
    +30impl AdvanceEditPage {
    +31    fn new(
    +32        config: Captcha,
    +33        levels: Vec<Level>,
    +34        key: String,
    +35        publish_benchmarks: bool,
    +36    ) -> Self {
    +37        AdvanceEditPage {
    +38            duration: config.duration as u32,
    +39            name: config.description,
    +40            levels,
    +41            key,
    +42            publish_benchmarks,
    +43        }
    +44    }
    +45}
    +46
    +47/// route handler that renders individual views for sitekeys
    +48#[my_codegen::get(
    +49    path = "crate::PAGES.panel.sitekey.edit_advance",
    +50    wrap = "crate::pages::get_middleware()"
    +51)]
    +52pub async fn advance(
    +53    path: web::Path<String>,
    +54    data: AppData,
    +55    id: Identity,
    +56) -> PageResult<impl Responder> {
    +57    let username = id.identity().unwrap();
    +58    let key = path.into_inner();
    +59
    +60    let config = data.db.get_captcha_config(&username, &key).await?;
    +61    let levels = data.db.get_captcha_levels(Some(&username), &key).await?;
    +62    let publish_benchmarks = data.db.analytics_captcha_is_published(&key).await?;
    +63
    +64    let body = AdvanceEditPage::new(config, levels, key, publish_benchmarks)
    +65        .render_once()
    +66        .unwrap();
    +67    Ok(HttpResponse::Ok()
    +68        .content_type("text/html; charset=utf-8")
    +69        .body(body))
    +70}
    +71
    +72#[derive(TemplateOnce, Clone)]
    +73#[template(path = "panel/sitekey/edit/easy/index.html")]
    +74pub struct EasyEditPage<'a> {
    +75    pub form_title: &'a str,
    +76    pub pattern: TrafficPatternRequest,
    +77    pub key: String,
    +78}
    +79
    +80impl<'a> EasyEditPage<'a> {
    +81    pub fn new(key: String, pattern: TrafficPatternRequest) -> Self {
    +82        Self {
    +83            form_title: PAGE,
    +84            pattern,
    +85            key,
    +86        }
    +87    }
    +88}
    +89
    +90/// route handler that renders individual views for sitekeys
    +91#[my_codegen::get(
    +92    path = "crate::PAGES.panel.sitekey.edit_easy",
    +93    wrap = "crate::pages::get_middleware()"
    +94)]
    +95pub async fn easy(
    +96    path: web::Path<String>,
    +97    data: AppData,
    +98    id: Identity,
    +99) -> PageResult<impl Responder> {
    +100    let username = id.identity().unwrap();
    +101    let key = path.into_inner();
    +102
    +103    match data.db.get_traffic_pattern(&username, &key).await {
    +104        Ok(c) => {
    +105            let config = data.db.get_captcha_config(&username, &key).await?;
    +106            let publish_benchmarks =
    +107                data.db.analytics_captcha_is_published(&key).await?;
    +108            let pattern = TrafficPatternRequest {
    +109                peak_sustainable_traffic: c.peak_sustainable_traffic,
    +110                avg_traffic: c.avg_traffic,
    +111                broke_my_site_traffic: c.broke_my_site_traffic,
    +112                description: config.description,
    +113                publish_benchmarks,
    +114            };
    +115
    +116            let page = EasyEditPage::new(key, pattern).render_once().unwrap();
    +117            return Ok(HttpResponse::Ok()
    +118                .content_type("text/html; charset=utf-8")
    +119                .body(page));
    +120        }
    +121        Err(DBError::TrafficPatternNotFound) => {
    +122            return Ok(HttpResponse::Found()
    +123                .insert_header((
    +124                    http::header::LOCATION,
    +125                    crate::PAGES.panel.sitekey.get_edit_advance(&key),
    +126                ))
    +127                .finish());
    +128        }
    +129        Err(e) => {
    +130            let e: ServiceError = e.into();
    +131            Err(e.into())
    +132        }
    +133    }
    +134}
    +135
    +136#[cfg(test)]
    +137mod test {
    +138    use actix_web::http::{header, StatusCode};
    +139    use actix_web::test;
    +140    use actix_web::web::Bytes;
    +141
    +142    use crate::tests::*;
    +143    use crate::*;
    +144
    +145    #[actix_rt::test]
    +146    async fn edit_sitekey_work_pg_test() {
    +147        let data = pg::get_data().await;
    +148        edit_sitekey_work(data).await;
    +149    }
    +150
    +151    #[actix_rt::test]
    +152    async fn edit_sitekey_work_maria_test() {
    +153        let data = maria::get_data().await;
    +154        edit_sitekey_work(data).await;
    +155    }
    +156
    +157    async fn edit_sitekey_work(data: ArcData) {
    +158        const NAME: &str = "editsitekeyuser";
    +159        const PASSWORD: &str = "longpassworddomain";
    +160        const EMAIL: &str = "editsitekeyuser@a.com";
    +161        let data = &data;
    +162        delete_user(data, NAME).await;
    +163
    +164        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +165        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    +166        let cookies = get_cookie!(signin_resp);
    +167
    +168        let app = get_app!(data).await;
    +169
    +170        let url = PAGES.panel.sitekey.get_edit_advance(&key.key);
    +171
    +172        let list_sitekey_resp = test::call_service(
    +173            &app,
    +174            test::TestRequest::get()
    +175                .uri(&url)
    +176                .cookie(cookies.clone())
    +177                .to_request(),
    +178        )
    +179        .await;
    +180
    +181        assert_eq!(list_sitekey_resp.status(), StatusCode::OK);
    +182
    +183        let body: Bytes = test::read_body(list_sitekey_resp).await;
    +184        let body = String::from_utf8(body.to_vec()).unwrap();
    +185
    +186        assert!(body.contains(&key.name));
    +187
    +188        assert!(body.contains(&L1.visitor_threshold.to_string()));
    +189        assert!(body.contains(&L1.difficulty_factor.to_string()));
    +190        assert!(body.contains(&L2.difficulty_factor.to_string()));
    +191        assert!(body.contains(&L2.visitor_threshold.to_string()));
    +192
    +193        let easy_url = PAGES.panel.sitekey.get_edit_easy(&key.key);
    +194
    +195        let redirect_resp = test::call_service(
    +196            &app,
    +197            test::TestRequest::get()
    +198                .uri(&easy_url)
    +199                .cookie(cookies.clone())
    +200                .to_request(),
    +201        )
    +202        .await;
    +203        assert_eq!(redirect_resp.status(), StatusCode::FOUND);
    +204        let headers = redirect_resp.headers();
    +205        assert_eq!(headers.get(header::LOCATION).unwrap(), &url);
    +206    }
    +207}
    \ 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 1c1e2772..e4f461bb 100644 --- a/src/mcaptcha/pages/panel/sitekey/list.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/list.rs.html @@ -1,209 +1,103 @@ -list.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{HttpResponse, Responder};
    -use sailfish::TemplateOnce;
    -
    -use db_core::Captcha;
    -
    -use crate::errors::*;
    -use crate::AppData;
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/sitekey/list/index.html")]
    -pub struct IndexPage {
    -    sitekeys: Vec<Captcha>,
    -}
    -
    -const PAGE: &str = "SiteKeys";
    -
    -impl IndexPage {
    -    fn new(sitekeys: Vec<Captcha>) -> Self {
    -        IndexPage { sitekeys }
    -    }
    -}
    -
    -/// render a list of all sitekeys that a user has
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.sitekey.list",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn list_sitekeys(data: AppData, id: Identity) -> PageResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let res = data.db.get_all_user_captchas(&username).await?;
    -    let body = IndexPage::new(res).render_once().unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -#[cfg(test)]
    -mod test {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -    use actix_web::web::Bytes;
    -
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn list_sitekeys_work_pg() {
    -        let data = pg::get_data().await;
    -        list_sitekeys_work(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn protected_routes_work_maria() {
    -        let data = maria::get_data().await;
    -        list_sitekeys_work(data).await;
    -    }
    -
    -    async fn list_sitekeys_work(data: ArcData) {
    -        const NAME: &str = "listsitekeyuser";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL: &str = "listsitekeyuser@a.com";
    -
    -        let data = &data;
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -
    -        let app = get_app!(data).await;
    -
    -        let list_sitekey_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(PAGES.panel.sitekey.list)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(list_sitekey_resp.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(list_sitekey_resp).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -
    -        //        Bytes::from(key.key)
    -        //            .iter()
    -        //            .for_each(|e| assert!(body.contains(e)));
    -        //
    -        //        Bytes::from(key.name)
    -        //            .iter()
    -        //            .for_each(|e| assert!(body.contains(e)));
    -
    -        assert!(body.contains(&key.key));
    -        assert!(body.contains(&key.name));
    -    }
    -}
    -
    \ No newline at end of file +list.rs - source

    mcaptcha/pages/panel/sitekey/
    list.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{HttpResponse, Responder};
    +8use sailfish::TemplateOnce;
    +9
    +10use db_core::Captcha;
    +11
    +12use crate::errors::*;
    +13use crate::AppData;
    +14
    +15#[derive(TemplateOnce, Clone)]
    +16#[template(path = "panel/sitekey/list/index.html")]
    +17pub struct IndexPage {
    +18    sitekeys: Vec<Captcha>,
    +19}
    +20
    +21const PAGE: &str = "SiteKeys";
    +22
    +23impl IndexPage {
    +24    fn new(sitekeys: Vec<Captcha>) -> Self {
    +25        IndexPage { sitekeys }
    +26    }
    +27}
    +28
    +29/// render a list of all sitekeys that a user has
    +30#[my_codegen::get(
    +31    path = "crate::PAGES.panel.sitekey.list",
    +32    wrap = "crate::pages::get_middleware()"
    +33)]
    +34pub async fn list_sitekeys(data: AppData, id: Identity) -> PageResult<impl Responder> {
    +35    let username = id.identity().unwrap();
    +36    let res = data.db.get_all_user_captchas(&username).await?;
    +37    let body = IndexPage::new(res).render_once().unwrap();
    +38    Ok(HttpResponse::Ok()
    +39        .content_type("text/html; charset=utf-8")
    +40        .body(body))
    +41}
    +42
    +43#[cfg(test)]
    +44mod test {
    +45    use actix_web::http::StatusCode;
    +46    use actix_web::test;
    +47    use actix_web::web::Bytes;
    +48
    +49    use crate::tests::*;
    +50    use crate::*;
    +51
    +52    #[actix_rt::test]
    +53    async fn list_sitekeys_work_pg() {
    +54        let data = pg::get_data().await;
    +55        list_sitekeys_work(data).await;
    +56    }
    +57
    +58    #[actix_rt::test]
    +59    async fn protected_routes_work_maria() {
    +60        let data = maria::get_data().await;
    +61        list_sitekeys_work(data).await;
    +62    }
    +63
    +64    async fn list_sitekeys_work(data: ArcData) {
    +65        const NAME: &str = "listsitekeyuser";
    +66        const PASSWORD: &str = "longpassworddomain";
    +67        const EMAIL: &str = "listsitekeyuser@a.com";
    +68
    +69        let data = &data;
    +70        delete_user(data, NAME).await;
    +71
    +72        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +73        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    +74        let cookies = get_cookie!(signin_resp);
    +75
    +76        let app = get_app!(data).await;
    +77
    +78        let list_sitekey_resp = test::call_service(
    +79            &app,
    +80            test::TestRequest::get()
    +81                .uri(PAGES.panel.sitekey.list)
    +82                .cookie(cookies.clone())
    +83                .to_request(),
    +84        )
    +85        .await;
    +86
    +87        assert_eq!(list_sitekey_resp.status(), StatusCode::OK);
    +88
    +89        let body: Bytes = test::read_body(list_sitekey_resp).await;
    +90        let body = String::from_utf8(body.to_vec()).unwrap();
    +91
    +92        //        Bytes::from(key.key)
    +93        //            .iter()
    +94        //            .for_each(|e| assert!(body.contains(e)));
    +95        //
    +96        //        Bytes::from(key.name)
    +97        //            .iter()
    +98        //            .for_each(|e| assert!(body.contains(e)));
    +99
    +100        assert!(body.contains(&key.key));
    +101        assert!(body.contains(&key.name));
    +102    }
    +103}
    \ 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 06c18444..21c31513 100644 --- a/src/mcaptcha/pages/panel/sitekey/mod.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/mod.rs.html @@ -1,177 +1,87 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -mod add;
    -mod delete;
    -mod edit;
    -pub mod list;
    -mod view;
    -
    -pub mod routes {
    -    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,
    -    }
    -
    -    impl Sitekey {
    -        pub const fn new() -> Self {
    -            Sitekey {
    -                list: "/sitekeys",
    -                add_advance: "/sitekeys/advance/add",
    -                add_easy: "/sitekeys/easy/add",
    -                view: "/sitekey/{key}",
    -                edit_advance: "/sitekey/{key}/advance/edit",
    -                edit_easy: "/sitekey/{key}/easy/edit",
    -                delete: "/sitekey/{key}/delete",
    -            }
    -        }
    -        pub const fn get_sitemap() -> [&'static str; 2] {
    -            const S: Sitekey = Sitekey::new();
    -            [S.list, S.add_advance]
    -        }
    -
    -        pub fn get_edit_easy(&self, key: &str) -> String {
    -            self.edit_easy.replace("{key}", key)
    -        }
    -
    -        pub fn get_edit_advance(&self, key: &str) -> String {
    -            self.edit_advance.replace("{key}", key)
    -        }
    -
    -        pub fn get_view(&self, key: &str) -> String {
    -            self.view.replace("{key}", key)
    -        }
    -
    -        pub fn get_delete(&self, key: &str) -> String {
    -            self.delete.replace("{key}", key)
    -        }
    -    }
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(add::advance);
    -    cfg.service(add::easy);
    -    cfg.service(list::list_sitekeys);
    -    cfg.service(view::view_sitekey);
    -    cfg.service(edit::advance);
    -    cfg.service(edit::easy);
    -    cfg.service(delete::delete_sitekey);
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use super::routes::Sitekey;
    -
    -    #[test]
    -    fn get_sitekey_routes_work() {
    -        const ROUTES: Sitekey = Sitekey::new();
    -        const KEY: &str = "foo";
    -        let tests = [
    -            (ROUTES.get_edit_easy(KEY), "/sitekey/foo/easy/edit"),
    -            (ROUTES.get_edit_advance(KEY), "/sitekey/foo/advance/edit"),
    -            (ROUTES.get_view(KEY), "/sitekey/foo"),
    -            (ROUTES.get_delete(KEY), "/sitekey/foo/delete"),
    -        ];
    -
    -        for (r, l) in tests.iter() {
    -            assert_eq!(r, l);
    -        }
    -    }
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/pages/panel/sitekey/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6mod add;
    +7mod delete;
    +8mod edit;
    +9pub mod list;
    +10mod view;
    +11
    +12pub mod routes {
    +13    pub struct Sitekey {
    +14        pub list: &'static str,
    +15        pub add_easy: &'static str,
    +16        pub add_advance: &'static str,
    +17        pub view: &'static str,
    +18        pub edit_easy: &'static str,
    +19        pub edit_advance: &'static str,
    +20        pub delete: &'static str,
    +21    }
    +22
    +23    impl Sitekey {
    +24        pub const fn new() -> Self {
    +25            Sitekey {
    +26                list: "/sitekeys",
    +27                add_advance: "/sitekeys/advance/add",
    +28                add_easy: "/sitekeys/easy/add",
    +29                view: "/sitekey/{key}",
    +30                edit_advance: "/sitekey/{key}/advance/edit",
    +31                edit_easy: "/sitekey/{key}/easy/edit",
    +32                delete: "/sitekey/{key}/delete",
    +33            }
    +34        }
    +35        pub const fn get_sitemap() -> [&'static str; 2] {
    +36            const S: Sitekey = Sitekey::new();
    +37            [S.list, S.add_advance]
    +38        }
    +39
    +40        pub fn get_edit_easy(&self, key: &str) -> String {
    +41            self.edit_easy.replace("{key}", key)
    +42        }
    +43
    +44        pub fn get_edit_advance(&self, key: &str) -> String {
    +45            self.edit_advance.replace("{key}", key)
    +46        }
    +47
    +48        pub fn get_view(&self, key: &str) -> String {
    +49            self.view.replace("{key}", key)
    +50        }
    +51
    +52        pub fn get_delete(&self, key: &str) -> String {
    +53            self.delete.replace("{key}", key)
    +54        }
    +55    }
    +56}
    +57
    +58pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +59    cfg.service(add::advance);
    +60    cfg.service(add::easy);
    +61    cfg.service(list::list_sitekeys);
    +62    cfg.service(view::view_sitekey);
    +63    cfg.service(edit::advance);
    +64    cfg.service(edit::easy);
    +65    cfg.service(delete::delete_sitekey);
    +66}
    +67
    +68#[cfg(test)]
    +69mod tests {
    +70    use super::routes::Sitekey;
    +71
    +72    #[test]
    +73    fn get_sitekey_routes_work() {
    +74        const ROUTES: Sitekey = Sitekey::new();
    +75        const KEY: &str = "foo";
    +76        let tests = [
    +77            (ROUTES.get_edit_easy(KEY), "/sitekey/foo/easy/edit"),
    +78            (ROUTES.get_edit_advance(KEY), "/sitekey/foo/advance/edit"),
    +79            (ROUTES.get_view(KEY), "/sitekey/foo"),
    +80            (ROUTES.get_delete(KEY), "/sitekey/foo/delete"),
    +81        ];
    +82
    +83        for (r, l) in tests.iter() {
    +84            assert_eq!(r, l);
    +85        }
    +86    }
    +87}
    \ 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 20ca17ba..c1666a83 100644 --- a/src/mcaptcha/pages/panel/sitekey/view.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/view.rs.html @@ -1,267 +1,132 @@ -view.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use sailfish::TemplateOnce;
    -
    -use db_core::Captcha;
    -use libmcaptcha::defense::Level;
    -
    -use crate::errors::*;
    -use crate::stats::CaptchaStats;
    -use crate::AppData;
    -
    -const PAGE: &str = "SiteKeys";
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/sitekey/view/index.html")]
    -struct IndexPage {
    -    duration: u32,
    -    name: String,
    -    key: String,
    -    levels: Vec<Level>,
    -    stats: CaptchaStats,
    -    publish_benchmarks: bool,
    -}
    -
    -impl IndexPage {
    -    fn new(
    -        stats: CaptchaStats,
    -        config: Captcha,
    -        levels: Vec<Level>,
    -        key: String,
    -        publish_benchmarks: bool,
    -    ) -> Self {
    -        IndexPage {
    -            duration: config.duration as u32,
    -            name: config.description,
    -            levels,
    -            key,
    -            stats,
    -            publish_benchmarks,
    -        }
    -    }
    -}
    -
    -/// route handler that renders individual views for sitekeys
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.sitekey.view",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -pub async fn view_sitekey(
    -    path: web::Path<String>,
    -    data: AppData,
    -    id: Identity,
    -) -> PageResult<impl Responder> {
    -    let username = id.identity().unwrap();
    -    let key = path.into_inner();
    -    let config = data.db.get_captcha_config(&username, &key).await?;
    -    let levels = data.db.get_captcha_levels(Some(&username), &key).await?;
    -    let stats = data.stats.fetch(&data, &username, &key).await?;
    -    let publish_benchmarks = data.db.analytics_captcha_is_published(&key).await?;
    -
    -    let body = IndexPage::new(stats, config, levels, key, publish_benchmarks)
    -        .render_once()
    -        .unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -#[cfg(test)]
    -mod test {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -    use actix_web::web::Bytes;
    -
    -    use crate::tests::*;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn view_sitekey_work_pg_test() {
    -        let data = pg::get_data().await;
    -        view_sitekey_work(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn view_sitekey_work_maria_test() {
    -        let data = maria::get_data().await;
    -        view_sitekey_work(data).await;
    -    }
    -
    -    async fn view_sitekey_work(data: ArcData) {
    -        const NAME: &str = "viewsitekeyuser";
    -        const PASSWORD: &str = "longpassworddomain";
    -        const EMAIL: &str = "viewsitekeyuser@a.com";
    -
    -        let data = &data;
    -        delete_user(data, NAME).await;
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let cookies = get_cookie!(signin_resp);
    -
    -        let app = get_app!(data).await;
    -
    -        let url = format!("/sitekey/{}/", &key.key);
    -
    -        let list_sitekey_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(&url)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(list_sitekey_resp.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(list_sitekey_resp).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -
    -        assert!(body.contains(&key.name));
    -
    -        assert!(body.contains(&L1.visitor_threshold.to_string()));
    -        assert!(body.contains(&L1.difficulty_factor.to_string()));
    -        assert!(body.contains(&L2.difficulty_factor.to_string()));
    -        assert!(body.contains(&L2.visitor_threshold.to_string()));
    -    }
    -}
    -
    \ No newline at end of file +view.rs - source

    mcaptcha/pages/panel/sitekey/
    view.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use sailfish::TemplateOnce;
    +9
    +10use db_core::Captcha;
    +11use libmcaptcha::defense::Level;
    +12
    +13use crate::errors::*;
    +14use crate::stats::CaptchaStats;
    +15use crate::AppData;
    +16
    +17const PAGE: &str = "SiteKeys";
    +18
    +19#[derive(TemplateOnce, Clone)]
    +20#[template(path = "panel/sitekey/view/index.html")]
    +21struct IndexPage {
    +22    duration: u32,
    +23    name: String,
    +24    key: String,
    +25    levels: Vec<Level>,
    +26    stats: CaptchaStats,
    +27    publish_benchmarks: bool,
    +28}
    +29
    +30impl IndexPage {
    +31    fn new(
    +32        stats: CaptchaStats,
    +33        config: Captcha,
    +34        levels: Vec<Level>,
    +35        key: String,
    +36        publish_benchmarks: bool,
    +37    ) -> Self {
    +38        IndexPage {
    +39            duration: config.duration as u32,
    +40            name: config.description,
    +41            levels,
    +42            key,
    +43            stats,
    +44            publish_benchmarks,
    +45        }
    +46    }
    +47}
    +48
    +49/// route handler that renders individual views for sitekeys
    +50#[my_codegen::get(
    +51    path = "crate::PAGES.panel.sitekey.view",
    +52    wrap = "crate::pages::get_middleware()"
    +53)]
    +54pub async fn view_sitekey(
    +55    path: web::Path<String>,
    +56    data: AppData,
    +57    id: Identity,
    +58) -> PageResult<impl Responder> {
    +59    let username = id.identity().unwrap();
    +60    let key = path.into_inner();
    +61    let config = data.db.get_captcha_config(&username, &key).await?;
    +62    let levels = data.db.get_captcha_levels(Some(&username), &key).await?;
    +63    let stats = data.stats.fetch(&data, &username, &key).await?;
    +64    let publish_benchmarks = data.db.analytics_captcha_is_published(&key).await?;
    +65
    +66    let body = IndexPage::new(stats, config, levels, key, publish_benchmarks)
    +67        .render_once()
    +68        .unwrap();
    +69    Ok(HttpResponse::Ok()
    +70        .content_type("text/html; charset=utf-8")
    +71        .body(body))
    +72}
    +73
    +74#[cfg(test)]
    +75mod test {
    +76    use actix_web::http::StatusCode;
    +77    use actix_web::test;
    +78    use actix_web::web::Bytes;
    +79
    +80    use crate::tests::*;
    +81    use crate::*;
    +82
    +83    #[actix_rt::test]
    +84    async fn view_sitekey_work_pg_test() {
    +85        let data = pg::get_data().await;
    +86        view_sitekey_work(data).await;
    +87    }
    +88
    +89    #[actix_rt::test]
    +90    async fn view_sitekey_work_maria_test() {
    +91        let data = maria::get_data().await;
    +92        view_sitekey_work(data).await;
    +93    }
    +94
    +95    async fn view_sitekey_work(data: ArcData) {
    +96        const NAME: &str = "viewsitekeyuser";
    +97        const PASSWORD: &str = "longpassworddomain";
    +98        const EMAIL: &str = "viewsitekeyuser@a.com";
    +99
    +100        let data = &data;
    +101        delete_user(data, NAME).await;
    +102
    +103        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +104        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    +105        let cookies = get_cookie!(signin_resp);
    +106
    +107        let app = get_app!(data).await;
    +108
    +109        let url = format!("/sitekey/{}/", &key.key);
    +110
    +111        let list_sitekey_resp = test::call_service(
    +112            &app,
    +113            test::TestRequest::get()
    +114                .uri(&url)
    +115                .cookie(cookies.clone())
    +116                .to_request(),
    +117        )
    +118        .await;
    +119
    +120        assert_eq!(list_sitekey_resp.status(), StatusCode::OK);
    +121
    +122        let body: Bytes = test::read_body(list_sitekey_resp).await;
    +123        let body = String::from_utf8(body.to_vec()).unwrap();
    +124
    +125        assert!(body.contains(&key.name));
    +126
    +127        assert!(body.contains(&L1.visitor_threshold.to_string()));
    +128        assert!(body.contains(&L1.difficulty_factor.to_string()));
    +129        assert!(body.contains(&L2.difficulty_factor.to_string()));
    +130        assert!(body.contains(&L2.visitor_threshold.to_string()));
    +131    }
    +132}
    \ No newline at end of file diff --git a/src/mcaptcha/pages/panel/utils.rs.html b/src/mcaptcha/pages/panel/utils.rs.html index 48a9b611..89fe35b5 100644 --- a/src/mcaptcha/pages/panel/utils.rs.html +++ b/src/mcaptcha/pages/panel/utils.rs.html @@ -1,563 +1,280 @@ -utils.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -
    // Copyright (C) 2024  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_identity::Identity;
    -use actix_web::{web, HttpResponse, Responder};
    -use sailfish::TemplateOnce;
    -
    -use crate::api::v1::stats::{percentile_bench_runner, PercentileReq, PercentileResp};
    -use crate::errors::PageResult;
    -use crate::pages::auth::sudo::SudoPage;
    -use crate::AppData;
    -
    -pub mod routes {
    -    pub struct Utils {
    -        pub percentile: &'static str,
    -    }
    -
    -    impl Utils {
    -        pub const fn new() -> Self {
    -            Utils {
    -                percentile: "/utils/percentile",
    -            }
    -        }
    -
    -        pub const fn get_sitemap() -> [&'static str; 1] {
    -            const S: Utils = Utils::new();
    -            [S.percentile]
    -        }
    -    }
    -}
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(get_percentile);
    -    cfg.service(post_percentile);
    -}
    -
    -const PAGE: &str = "Difficulty factor statistics";
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "panel/utils/percentile/index.html")]
    -pub struct PercentilePage {
    -    time: Option<u32>,
    -    percentile: Option<f64>,
    -    difficulty_factor: Option<u32>,
    -}
    -
    -#[my_codegen::get(
    -    path = "crate::PAGES.panel.utils.percentile",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -async fn get_percentile(id: Identity) -> PageResult<impl Responder> {
    -    let data = PercentilePage {
    -        time: None,
    -        percentile: None,
    -        difficulty_factor: None,
    -    };
    -
    -    let body = data.render_once().unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -#[my_codegen::post(
    -    path = "crate::PAGES.panel.utils.percentile",
    -    wrap = "crate::pages::get_middleware()"
    -)]
    -async fn post_percentile(
    -    data: AppData,
    -    id: Identity,
    -    payload: web::Form<PercentileReq>,
    -) -> PageResult<impl Responder> {
    -    let resp = percentile_bench_runner(&data, &payload).await?;
    -    let page = PercentilePage {
    -        time: Some(payload.time),
    -        percentile: Some(payload.percentile),
    -        difficulty_factor: resp.difficulty_factor,
    -    };
    -
    -    let body = page.render_once().unwrap();
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(body))
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use actix_web::{http::StatusCode, test, web::Bytes, App};
    -
    -    use super::*;
    -    use crate::api::v1::services;
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn page_stats_bench_work_pg() {
    -        let data = crate::tests::pg::get_data().await;
    -        page_stats_bench_work(data).await;
    -    }
    -
    -    #[actix_rt::test]
    -    async fn page_stats_bench_work_maria() {
    -        let data = crate::tests::maria::get_data().await;
    -        page_stats_bench_work(data).await;
    -    }
    -
    -    async fn page_stats_bench_work(data: ArcData) {
    -        use crate::tests::*;
    -
    -        const NAME: &str = "pagebenchstatsuesr";
    -        const EMAIL: &str = "pagebenchstatsuesr@testadminuser.com";
    -        const PASSWORD: &str = "longpassword2";
    -
    -        const DEVICE_USER_PROVIDED: &str = "foo";
    -        const DEVICE_SOFTWARE_RECOGNISED: &str = "Foobar.v2";
    -        const THREADS: i32 = 4;
    -
    -        let data = &data;
    -        {
    -            delete_user(&data, NAME).await;
    -        }
    -
    -        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    -        // create captcha
    -        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    -        let app = get_app!(data).await;
    -        let cookies = get_cookie!(signin_resp);
    -
    -        let page = 1;
    -        let tmp_id = uuid::Uuid::new_v4();
    -        let download_rotue = V1_API_ROUTES
    -            .survey
    -            .get_download_route(&tmp_id.to_string(), page);
    -
    -        let download_req = test::call_service(
    -            &app,
    -            test::TestRequest::get().uri(&download_rotue).to_request(),
    -        )
    -        .await;
    -        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    -
    -        data.db
    -            .analytics_create_psuedo_id_if_not_exists(&key.key)
    -            .await
    -            .unwrap();
    -
    -        let psuedo_id = data
    -            .db
    -            .analytics_get_psuedo_id_from_capmaign_id(&key.key)
    -            .await
    -            .unwrap();
    -
    -        for i in 1..6 {
    -            println!("[{i}] Saving analytics");
    -            let analytics = db_core::CreatePerformanceAnalytics {
    -                time: i,
    -                difficulty_factor: i,
    -                worker_type: "wasm".into(),
    -            };
    -            data.db.analysis_save(&key.key, &analytics).await.unwrap();
    -        }
    -
    -        let msg = PercentileReq {
    -            time: 1,
    -            percentile: 99.00,
    -        };
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let resp: PercentileResp = test::read_body_json(resp).await;
    -
    -        assert!(resp.difficulty_factor.is_none());
    -
    -        let msg = PercentileReq {
    -            time: 1,
    -            percentile: 100.00,
    -        };
    -
    -        let resp = test::call_service(
    -            &app,
    -            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    -        )
    -        .await;
    -        assert_eq!(resp.status(), StatusCode::OK);
    -        let resp: PercentileResp = test::read_body_json(resp).await;
    -
    -        // start
    -        let percentile_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(&crate::PAGES.panel.utils.percentile)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(percentile_resp.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(percentile_resp).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -
    -        assert!(body.contains("Maximum time taken"));
    -
    -        let percentile_resp = test::call_service(
    -            &app,
    -            test::TestRequest::get()
    -                .uri(&crate::PAGES.panel.utils.percentile)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(percentile_resp.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(percentile_resp).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -
    -        assert!(body.contains("Maximum time taken"));
    -
    -        // end
    -        // start post
    -
    -        let msg = PercentileReq {
    -            time: 1,
    -            percentile: 99.00,
    -        };
    -
    -        let percentile_resp = test::call_service(
    -            &app,
    -            test::TestRequest::post()
    -                .uri(&crate::PAGES.panel.utils.percentile)
    -                .set_form(&msg)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(percentile_resp.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(percentile_resp).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -
    -        assert!(body.contains(
    -            "Not enough inputs to compute statistics. Please try again later"
    -        ));
    -        assert!(body.contains(&1.to_string()));
    -        assert!(body.contains(&99.00.to_string()));
    -        // end post
    -
    -        // start post
    -
    -        let msg = PercentileReq {
    -            time: 2,
    -            percentile: 100.00,
    -        };
    -
    -        let percentile_resp = test::call_service(
    -            &app,
    -            test::TestRequest::post()
    -                .uri(&crate::PAGES.panel.utils.percentile)
    -                .set_form(&msg)
    -                .cookie(cookies.clone())
    -                .to_request(),
    -        )
    -        .await;
    -
    -        assert_eq!(percentile_resp.status(), StatusCode::OK);
    -
    -        let body: Bytes = test::read_body(percentile_resp).await;
    -        let body = String::from_utf8(body.to_vec()).unwrap();
    -
    -        assert!(body.contains("Difficulty factor: 2"));
    -        assert!(body.contains(&2.to_string()));
    -        assert!(body.contains(&100.00.to_string()));
    -    }
    -}
    -
    \ No newline at end of file +utils.rs - source

    mcaptcha/pages/panel/
    utils.rs

    1// Copyright (C) 2024  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_identity::Identity;
    +7use actix_web::{web, HttpResponse, Responder};
    +8use sailfish::TemplateOnce;
    +9
    +10use crate::api::v1::stats::{percentile_bench_runner, PercentileReq, PercentileResp};
    +11use crate::errors::PageResult;
    +12use crate::pages::auth::sudo::SudoPage;
    +13use crate::AppData;
    +14
    +15pub mod routes {
    +16    pub struct Utils {
    +17        pub percentile: &'static str,
    +18    }
    +19
    +20    impl Utils {
    +21        pub const fn new() -> Self {
    +22            Utils {
    +23                percentile: "/utils/percentile",
    +24            }
    +25        }
    +26
    +27        pub const fn get_sitemap() -> [&'static str; 1] {
    +28            const S: Utils = Utils::new();
    +29            [S.percentile]
    +30        }
    +31    }
    +32}
    +33
    +34pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +35    cfg.service(get_percentile);
    +36    cfg.service(post_percentile);
    +37}
    +38
    +39const PAGE: &str = "Difficulty factor statistics";
    +40
    +41#[derive(TemplateOnce, Clone)]
    +42#[template(path = "panel/utils/percentile/index.html")]
    +43pub struct PercentilePage {
    +44    time: Option<u32>,
    +45    percentile: Option<f64>,
    +46    difficulty_factor: Option<u32>,
    +47}
    +48
    +49#[my_codegen::get(
    +50    path = "crate::PAGES.panel.utils.percentile",
    +51    wrap = "crate::pages::get_middleware()"
    +52)]
    +53async fn get_percentile(id: Identity) -> PageResult<impl Responder> {
    +54    let data = PercentilePage {
    +55        time: None,
    +56        percentile: None,
    +57        difficulty_factor: None,
    +58    };
    +59
    +60    let body = data.render_once().unwrap();
    +61    Ok(HttpResponse::Ok()
    +62        .content_type("text/html; charset=utf-8")
    +63        .body(body))
    +64}
    +65
    +66#[my_codegen::post(
    +67    path = "crate::PAGES.panel.utils.percentile",
    +68    wrap = "crate::pages::get_middleware()"
    +69)]
    +70async fn post_percentile(
    +71    data: AppData,
    +72    id: Identity,
    +73    payload: web::Form<PercentileReq>,
    +74) -> PageResult<impl Responder> {
    +75    let resp = percentile_bench_runner(&data, &payload).await?;
    +76    let page = PercentilePage {
    +77        time: Some(payload.time),
    +78        percentile: Some(payload.percentile),
    +79        difficulty_factor: resp.difficulty_factor,
    +80    };
    +81
    +82    let body = page.render_once().unwrap();
    +83    Ok(HttpResponse::Ok()
    +84        .content_type("text/html; charset=utf-8")
    +85        .body(body))
    +86}
    +87
    +88#[cfg(test)]
    +89mod tests {
    +90    use actix_web::{http::StatusCode, test, web::Bytes, App};
    +91
    +92    use super::*;
    +93    use crate::api::v1::services;
    +94    use crate::*;
    +95
    +96    #[actix_rt::test]
    +97    async fn page_stats_bench_work_pg() {
    +98        let data = crate::tests::pg::get_data().await;
    +99        page_stats_bench_work(data).await;
    +100    }
    +101
    +102    #[actix_rt::test]
    +103    async fn page_stats_bench_work_maria() {
    +104        let data = crate::tests::maria::get_data().await;
    +105        page_stats_bench_work(data).await;
    +106    }
    +107
    +108    async fn page_stats_bench_work(data: ArcData) {
    +109        use crate::tests::*;
    +110
    +111        const NAME: &str = "pagebenchstatsuesr";
    +112        const EMAIL: &str = "pagebenchstatsuesr@testadminuser.com";
    +113        const PASSWORD: &str = "longpassword2";
    +114
    +115        const DEVICE_USER_PROVIDED: &str = "foo";
    +116        const DEVICE_SOFTWARE_RECOGNISED: &str = "Foobar.v2";
    +117        const THREADS: i32 = 4;
    +118
    +119        let data = &data;
    +120        {
    +121            delete_user(&data, NAME).await;
    +122        }
    +123
    +124        register_and_signin(data, NAME, EMAIL, PASSWORD).await;
    +125        // create captcha
    +126        let (_, signin_resp, key) = add_levels_util(data, NAME, PASSWORD).await;
    +127        let app = get_app!(data).await;
    +128        let cookies = get_cookie!(signin_resp);
    +129
    +130        let page = 1;
    +131        let tmp_id = uuid::Uuid::new_v4();
    +132        let download_rotue = V1_API_ROUTES
    +133            .survey
    +134            .get_download_route(&tmp_id.to_string(), page);
    +135
    +136        let download_req = test::call_service(
    +137            &app,
    +138            test::TestRequest::get().uri(&download_rotue).to_request(),
    +139        )
    +140        .await;
    +141        assert_eq!(download_req.status(), StatusCode::NOT_FOUND);
    +142
    +143        data.db
    +144            .analytics_create_psuedo_id_if_not_exists(&key.key)
    +145            .await
    +146            .unwrap();
    +147
    +148        let psuedo_id = data
    +149            .db
    +150            .analytics_get_psuedo_id_from_capmaign_id(&key.key)
    +151            .await
    +152            .unwrap();
    +153
    +154        for i in 1..6 {
    +155            println!("[{i}] Saving analytics");
    +156            let analytics = db_core::CreatePerformanceAnalytics {
    +157                time: i,
    +158                difficulty_factor: i,
    +159                worker_type: "wasm".into(),
    +160            };
    +161            data.db.analysis_save(&key.key, &analytics).await.unwrap();
    +162        }
    +163
    +164        let msg = PercentileReq {
    +165            time: 1,
    +166            percentile: 99.00,
    +167        };
    +168        let resp = test::call_service(
    +169            &app,
    +170            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    +171        )
    +172        .await;
    +173        assert_eq!(resp.status(), StatusCode::OK);
    +174        let resp: PercentileResp = test::read_body_json(resp).await;
    +175
    +176        assert!(resp.difficulty_factor.is_none());
    +177
    +178        let msg = PercentileReq {
    +179            time: 1,
    +180            percentile: 100.00,
    +181        };
    +182
    +183        let resp = test::call_service(
    +184            &app,
    +185            post_request!(&msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
    +186        )
    +187        .await;
    +188        assert_eq!(resp.status(), StatusCode::OK);
    +189        let resp: PercentileResp = test::read_body_json(resp).await;
    +190
    +191        // start
    +192        let percentile_resp = test::call_service(
    +193            &app,
    +194            test::TestRequest::get()
    +195                .uri(&crate::PAGES.panel.utils.percentile)
    +196                .cookie(cookies.clone())
    +197                .to_request(),
    +198        )
    +199        .await;
    +200
    +201        assert_eq!(percentile_resp.status(), StatusCode::OK);
    +202
    +203        let body: Bytes = test::read_body(percentile_resp).await;
    +204        let body = String::from_utf8(body.to_vec()).unwrap();
    +205
    +206        assert!(body.contains("Maximum time taken"));
    +207
    +208        let percentile_resp = test::call_service(
    +209            &app,
    +210            test::TestRequest::get()
    +211                .uri(&crate::PAGES.panel.utils.percentile)
    +212                .cookie(cookies.clone())
    +213                .to_request(),
    +214        )
    +215        .await;
    +216
    +217        assert_eq!(percentile_resp.status(), StatusCode::OK);
    +218
    +219        let body: Bytes = test::read_body(percentile_resp).await;
    +220        let body = String::from_utf8(body.to_vec()).unwrap();
    +221
    +222        assert!(body.contains("Maximum time taken"));
    +223
    +224        // end
    +225        // start post
    +226
    +227        let msg = PercentileReq {
    +228            time: 1,
    +229            percentile: 99.00,
    +230        };
    +231
    +232        let percentile_resp = test::call_service(
    +233            &app,
    +234            test::TestRequest::post()
    +235                .uri(&crate::PAGES.panel.utils.percentile)
    +236                .set_form(&msg)
    +237                .cookie(cookies.clone())
    +238                .to_request(),
    +239        )
    +240        .await;
    +241
    +242        assert_eq!(percentile_resp.status(), StatusCode::OK);
    +243
    +244        let body: Bytes = test::read_body(percentile_resp).await;
    +245        let body = String::from_utf8(body.to_vec()).unwrap();
    +246
    +247        assert!(body.contains(
    +248            "Not enough inputs to compute statistics. Please try again later"
    +249        ));
    +250        assert!(body.contains(&1.to_string()));
    +251        assert!(body.contains(&99.00.to_string()));
    +252        // end post
    +253
    +254        // start post
    +255
    +256        let msg = PercentileReq {
    +257            time: 2,
    +258            percentile: 100.00,
    +259        };
    +260
    +261        let percentile_resp = test::call_service(
    +262            &app,
    +263            test::TestRequest::post()
    +264                .uri(&crate::PAGES.panel.utils.percentile)
    +265                .set_form(&msg)
    +266                .cookie(cookies.clone())
    +267                .to_request(),
    +268        )
    +269        .await;
    +270
    +271        assert_eq!(percentile_resp.status(), StatusCode::OK);
    +272
    +273        let body: Bytes = test::read_body(percentile_resp).await;
    +274        let body = String::from_utf8(body.to_vec()).unwrap();
    +275
    +276        assert!(body.contains("Difficulty factor: 2"));
    +277        assert!(body.contains(&2.to_string()));
    +278        assert!(body.contains(&100.00.to_string()));
    +279    }
    +280}
    \ No newline at end of file diff --git a/src/mcaptcha/pages/routes.rs.html b/src/mcaptcha/pages/routes.rs.html index aa2625a5..2256fa45 100644 --- a/src/mcaptcha/pages/routes.rs.html +++ b/src/mcaptcha/pages/routes.rs.html @@ -1,135 +1,66 @@ -routes.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_auth_middleware::GetLoginRoute;
    -
    -use super::auth::routes::Auth;
    -use super::errors::routes::Errors;
    -use super::panel::routes::Panel;
    -
    -pub const ROUTES: Routes = Routes::new();
    -
    -pub struct Routes {
    -    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,
    -}
    -
    -impl Routes {
    -    const fn new() -> Routes {
    -        let panel = Panel::new();
    -        let home = panel.home;
    -        Routes {
    -            auth: Auth::new(),
    -            panel,
    -            home,
    -            errors: Errors::new(),
    -            about: "/about",
    -            sitemap: "/sitemap.xml",
    -            thanks: "/thanks",
    -            donate: "/donate",
    -            security: "/security",
    -            privacy: "/privacy-policy",
    -        }
    -    }
    -
    -    pub const fn get_sitemap() -> [&'static str; 7] {
    -        let a = Auth::get_sitemap();
    -        let p = Panel::get_sitemap();
    -        [a[0], a[1], p[0], p[1], p[2], p[3], p[4]]
    -    }
    -}
    -
    -impl GetLoginRoute for Routes {
    -    fn get_login_route(&self, src: Option<&str>) -> String {
    -        self.auth.get_login_route(src)
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use super::*;
    -
    -    #[test]
    -    fn sitemap_works() {
    -        Routes::get_sitemap();
    -    }
    -}
    -
    \ No newline at end of file +routes.rs - source

    mcaptcha/pages/
    routes.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_auth_middleware::GetLoginRoute;
    +7
    +8use super::auth::routes::Auth;
    +9use super::errors::routes::Errors;
    +10use super::panel::routes::Panel;
    +11
    +12pub const ROUTES: Routes = Routes::new();
    +13
    +14pub struct Routes {
    +15    pub home: &'static str,
    +16    pub auth: Auth,
    +17    pub panel: Panel,
    +18    pub errors: Errors,
    +19    pub about: &'static str,
    +20    pub sitemap: &'static str,
    +21    pub thanks: &'static str,
    +22    pub donate: &'static str,
    +23    pub security: &'static str,
    +24    pub privacy: &'static str,
    +25}
    +26
    +27impl Routes {
    +28    const fn new() -> Routes {
    +29        let panel = Panel::new();
    +30        let home = panel.home;
    +31        Routes {
    +32            auth: Auth::new(),
    +33            panel,
    +34            home,
    +35            errors: Errors::new(),
    +36            about: "/about",
    +37            sitemap: "/sitemap.xml",
    +38            thanks: "/thanks",
    +39            donate: "/donate",
    +40            security: "/security",
    +41            privacy: "/privacy-policy",
    +42        }
    +43    }
    +44
    +45    pub const fn get_sitemap() -> [&'static str; 7] {
    +46        let a = Auth::get_sitemap();
    +47        let p = Panel::get_sitemap();
    +48        [a[0], a[1], p[0], p[1], p[2], p[3], p[4]]
    +49    }
    +50}
    +51
    +52impl GetLoginRoute for Routes {
    +53    fn get_login_route(&self, src: Option<&str>) -> String {
    +54        self.auth.get_login_route(src)
    +55    }
    +56}
    +57
    +58#[cfg(test)]
    +59mod tests {
    +60    use super::*;
    +61
    +62    #[test]
    +63    fn sitemap_works() {
    +64        Routes::get_sitemap();
    +65    }
    +66}
    \ No newline at end of file diff --git a/src/mcaptcha/pages/sitemap.rs.html b/src/mcaptcha/pages/sitemap.rs.html index 0579b53c..d62893ce 100644 --- a/src/mcaptcha/pages/sitemap.rs.html +++ b/src/mcaptcha/pages/sitemap.rs.html @@ -1,89 +1,43 @@ -sitemap.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use actix_web::{HttpResponse, Responder};
    -use lazy_static::lazy_static;
    -use my_codegen::get;
    -use sailfish::TemplateOnce;
    -
    -use super::routes::Routes;
    -use crate::PAGES;
    -
    -#[derive(Clone, TemplateOnce)]
    -#[template(path = "sitemap.html")]
    -struct IndexPage {
    -    urls: [&'static str; 7],
    -    domain: &'static str,
    -}
    -
    -impl Default for IndexPage {
    -    fn default() -> Self {
    -        let urls = Routes::get_sitemap();
    -        let domain = if crate::SETTINGS.server.domain.ends_with('/') {
    -            &crate::SETTINGS.server.domain[0..crate::SETTINGS.server.domain.len() - 1]
    -        } else {
    -            &crate::SETTINGS.server.domain
    -        };
    -
    -        Self { urls, domain }
    -    }
    -}
    -
    -lazy_static! {
    -    static ref INDEX: String = IndexPage::default().render_once().unwrap();
    -}
    -
    -#[get(path = "PAGES.sitemap")]
    -pub async fn sitemap() -> impl Responder {
    -    HttpResponse::Ok()
    -        .content_type("application/xml; charset=utf-8")
    -        .body(&**INDEX)
    -}
    -
    \ No newline at end of file +sitemap.rs - source

    mcaptcha/pages/
    sitemap.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use actix_web::{HttpResponse, Responder};
    +7use lazy_static::lazy_static;
    +8use my_codegen::get;
    +9use sailfish::TemplateOnce;
    +10
    +11use super::routes::Routes;
    +12use crate::PAGES;
    +13
    +14#[derive(Clone, TemplateOnce)]
    +15#[template(path = "sitemap.html")]
    +16struct IndexPage {
    +17    urls: [&'static str; 7],
    +18    domain: &'static str,
    +19}
    +20
    +21impl Default for IndexPage {
    +22    fn default() -> Self {
    +23        let urls = Routes::get_sitemap();
    +24        let domain = if crate::SETTINGS.server.domain.ends_with('/') {
    +25            &crate::SETTINGS.server.domain[0..crate::SETTINGS.server.domain.len() - 1]
    +26        } else {
    +27            &crate::SETTINGS.server.domain
    +28        };
    +29
    +30        Self { urls, domain }
    +31    }
    +32}
    +33
    +34lazy_static! {
    +35    static ref INDEX: String = IndexPage::default().render_once().unwrap();
    +36}
    +37
    +38#[get(path = "PAGES.sitemap")]
    +39pub async fn sitemap() -> impl Responder {
    +40    HttpResponse::Ok()
    +41        .content_type("application/xml; charset=utf-8")
    +42        .body(&**INDEX)
    +43}
    \ No newline at end of file diff --git a/src/mcaptcha/routes.rs.html b/src/mcaptcha/routes.rs.html index 788103cf..9b254428 100644 --- a/src/mcaptcha/routes.rs.html +++ b/src/mcaptcha/routes.rs.html @@ -1,27 +1,12 @@ -routes.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    crate::api::v1::services(cfg);
    -    crate::docs::services(cfg);
    -    crate::widget::services(cfg);
    -    crate::pages::services(cfg);
    -    crate::static_assets::services(cfg);
    -}
    -
    \ No newline at end of file +routes.rs - source

    mcaptcha/
    routes.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +7    crate::api::v1::services(cfg);
    +8    crate::docs::services(cfg);
    +9    crate::widget::services(cfg);
    +10    crate::pages::services(cfg);
    +11    crate::static_assets::services(cfg);
    +12}
    \ No newline at end of file diff --git a/src/mcaptcha/settings.rs.html b/src/mcaptcha/settings.rs.html index 57fe3403..58c236e0 100644 --- a/src/mcaptcha/settings.rs.html +++ b/src/mcaptcha/settings.rs.html @@ -1,1293 +1,643 @@ -settings.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    -400
    -401
    -402
    -403
    -404
    -405
    -406
    -407
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    -424
    -425
    -426
    -427
    -428
    -429
    -430
    -431
    -432
    -433
    -434
    -435
    -436
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    -464
    -465
    -466
    -467
    -468
    -469
    -470
    -471
    -472
    -473
    -474
    -475
    -476
    -477
    -478
    -479
    -480
    -481
    -482
    -483
    -484
    -485
    -486
    -487
    -488
    -489
    -490
    -491
    -492
    -493
    -494
    -495
    -496
    -497
    -498
    -499
    -500
    -501
    -502
    -503
    -504
    -505
    -506
    -507
    -508
    -509
    -510
    -511
    -512
    -513
    -514
    -515
    -516
    -517
    -518
    -519
    -520
    -521
    -522
    -523
    -524
    -525
    -526
    -527
    -528
    -529
    -530
    -531
    -532
    -533
    -534
    -535
    -536
    -537
    -538
    -539
    -540
    -541
    -542
    -543
    -544
    -545
    -546
    -547
    -548
    -549
    -550
    -551
    -552
    -553
    -554
    -555
    -556
    -557
    -558
    -559
    -560
    -561
    -562
    -563
    -564
    -565
    -566
    -567
    -568
    -569
    -570
    -571
    -572
    -573
    -574
    -575
    -576
    -577
    -578
    -579
    -580
    -581
    -582
    -583
    -584
    -585
    -586
    -587
    -588
    -589
    -590
    -591
    -592
    -593
    -594
    -595
    -596
    -597
    -598
    -599
    -600
    -601
    -602
    -603
    -604
    -605
    -606
    -607
    -608
    -609
    -610
    -611
    -612
    -613
    -614
    -615
    -616
    -617
    -618
    -619
    -620
    -621
    -622
    -623
    -624
    -625
    -626
    -627
    -628
    -629
    -630
    -631
    -632
    -633
    -634
    -635
    -636
    -637
    -638
    -639
    -640
    -641
    -642
    -643
    -644
    -645
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::path::Path;
    -use std::{env, fs};
    -
    -use config::builder::DefaultState;
    -use config::{Config, ConfigBuilder, ConfigError, File};
    -use derive_more::Display;
    -
    -use serde::{Deserialize, Serialize};
    -use url::Url;
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct Server {
    -    pub port: u32,
    -    pub domain: String,
    -    pub cookie_secret: String,
    -    pub ip: String,
    -    // TODO: remove
    -    pub url_prefix: Option<String>,
    -    pub proxy_has_tls: bool,
    -}
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct Captcha {
    -    pub salt: String,
    -    pub gc: u64,
    -    pub runners: Option<usize>,
    -    pub queue_length: usize,
    -    pub enable_stats: bool,
    -    pub default_difficulty_strategy: DefaultDifficultyStrategy,
    -}
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct DefaultDifficultyStrategy {
    -    pub avg_traffic_difficulty: u32,
    -    pub avg_traffic_time: Option<u32>,
    -    pub peak_sustainable_traffic_difficulty: u32,
    -    pub peak_sustainable_traffic_time: Option<u32>,
    -    pub broke_my_site_traffic_time: Option<u32>,
    -    pub broke_my_site_traffic_difficulty: u32,
    -    pub duration: u32,
    -}
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct Smtp {
    -    pub from: String,
    -    pub reply: String,
    -    pub url: String,
    -    pub username: String,
    -    pub password: String,
    -    pub port: u16,
    -}
    -
    -impl Server {
    -    #[cfg(not(tarpaulin_include))]
    -    pub fn get_ip(&self) -> String {
    -        format!("{}:{}", self.ip, self.port)
    -    }
    -}
    -
    -#[derive(Deserialize, Serialize, Display, Eq, PartialEq, Clone, Debug)]
    -#[serde(rename_all = "lowercase")]
    -pub enum DBType {
    -    #[display(fmt = "postgres")]
    -    Postgres,
    -    #[display(fmt = "maria")]
    -    Maria,
    -}
    -
    -impl DBType {
    -    fn from_url(url: &Url) -> Result<Self, ConfigError> {
    -        match url.scheme() {
    -            "mysql" => Ok(Self::Maria),
    -            "postgres" => Ok(Self::Postgres),
    -            _ => Err(ConfigError::Message("Unknown database type".into())),
    -        }
    -    }
    -}
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct Database {
    -    pub url: String,
    -    pub pool: u32,
    -    pub database_type: DBType,
    -}
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct Redis {
    -    pub url: String,
    -    pub pool: u32,
    -}
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct Survey {
    -    pub nodes: Vec<url::Url>,
    -    pub rate_limit: u64,
    -    pub instance_root_url: Url,
    -}
    -
    -#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    -pub struct Settings {
    -    pub debug: bool,
    -    pub commercial: bool,
    -    pub source_code: String,
    -    pub allow_registration: bool,
    -    pub allow_demo: bool,
    -    pub database: Database,
    -    pub survey: Option<Survey>,
    -    pub redis: Option<Redis>,
    -    pub server: Server,
    -    pub captcha: Captcha,
    -    pub smtp: Option<Smtp>,
    -}
    -
    -const ENV_VAR_CONFIG: [(&str, &str); 32] = [
    -    /* top-level */
    -    ("debug", "MCAPTCHA_debug"),
    -    ("commercial", "MCAPTCHA_commercial"),
    -    ("source_code", "MCAPTCHA_source_code"),
    -    ("allow_registration", "MCAPTCHA_allow_registration"),
    -    ("allow_demo", "MCAPTCHA_allow_demo"),
    -
    -    /* database */
    -    ("database.url", "DATABASE_URL"),
    -    ("database.pool", "MCAPTCHA_database_POOL"),
    -
    -    /* redis */
    -    ("redis.url", "MCAPTCHA_redis_URL"),
    -    ("redis.pool", "MCAPTCHA_redis_POOL"),
    -
    -    /* server */
    -    ("server.port", "PORT"),
    -    ("server.domain", "MCAPTCHA_server_DOMAIN"),
    -    ("server.cookie_secret", "MCAPTCHA__server_COOKIE_SECRET"),
    -    ("server.ip", "MCAPTCHA__server_IP"),
    -    ("server.proxy_has_tls", "MCAPTCHA__server_PROXY_HAS_TLS"),
    -
    -
    -    /* captcha */
    -    ("captcha.salt", "MCAPTCHA_captcha_SALT"),
    -    ("captcha.gc", "MCAPTCHA_captcha_GC"),
    -    ("captcha.runners", "MCAPTCHA_captcha_RUNNERS"),
    -    ("captcha.queue_length", "MCAPTCHA_captcha_QUEUE_LENGTH"),
    -    ("captcha.enable_stats", "MCAPTCHA_captcha_ENABLE_STATS"),
    -    ("captcha.default_difficulty_strategy.avg_traffic_difficulty", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_difficulty"),
    -    ("captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_difficulty"),
    -    ("captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty",
    -     "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_difficulty"),
    -    ( "captcha.default_difficulty_strategy.duration",
    -         "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_duration"
    -     ),
    -    ("captcha.default_difficulty_strategy.avg_traffic_time", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_time"),
    -    ("captcha.default_difficulty_strategy.peak_sustainable_traffic_time", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_time"),
    -    ("captcha.default_difficulty_strategy.broke_my_site_traffic_time", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_time"),
    -
    -
    -    /* SMTP */
    -    ("smtp.from", "MCAPTCHA_smtp_FROM"),
    -    ("smtp.reply", "MCAPTCHA_smtp_REPLY"),
    -    ("smtp.url", "MCAPTCHA_smtp_URL"),
    -    ("smtp.username", "MCAPTCHA_smtp_USERNAME"),
    -    ("smtp.password", "MCAPTCHA_smtp_PASSWORD"),
    -    ("smtp.port", "MCAPTCHA_smtp_PORT"),
    -
    -
    -
    -];
    -
    -const DEPRECATED_ENV_VARS: [(&str, &str); 23] = [
    -    ("debug", "MCAPTCHA_DEBUG"),
    -    ("commercial", "MCAPTCHA_COMMERCIAL"),
    -    ("source_code", "MCAPTCHA_SOURCE_CODE"),
    -    ("allow_registration", "MCAPTCHA_ALLOW_REGISTRATION"),
    -    ("allow_demo", "MCAPTCHA_ALLOW_DEMO"),
    -    ("redis.pool", "MCAPTCHA_REDIS_POOL"),
    -    ("redis.url", "MCAPTCHA_REDIS_URL"),
    -    ("server.port", "MCAPTCHA_SERVER_PORT"),
    -    ("server.ip", "MCAPTCHA_SERVER_IP"),
    -    ("server.domain", "MCAPTCHA_SERVER_DOMAIN"),
    -    ("server.cookie_secret", "MCAPTCHA_SERVER_COOKIE_SECRET"),
    -    ("server.proxy_has_tls", "MCAPTCHA_SERVER_PROXY_HAS_TLS"),
    -    ("captcha.salt", "MCAPTCHA_CAPTCHA_SALT"),
    -    ("captcha.gc", "MCAPTCHA_CAPTCHA_GC"),
    -    (
    -        "captcha.default_difficulty_strategy.avg_traffic_difficulty",
    -        "MCAPTCHA_CAPTCHA_AVG_TRAFFIC_DIFFICULTY",
    -    ),
    -    (
    -        "captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty",
    -        "MCAPTCHA_CAPTCHA_PEAK_TRAFFIC_DIFFICULTY",
    -    ),
    -    (
    -        "captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty",
    -        "MCAPTCHA_CAPTCHA_BROKE_MY_SITE_TRAFFIC",
    -    ),
    -    ("smtp.from", "MCAPTCHA_SMTP_FROM"),
    -    ("smtp.reply", "MCAPTCHA_SMTP_REPLY_TO"),
    -    ("smtp.url", "MCAPTCHA_SMTP_URL"),
    -    ("smtp.username", "MCAPTCHA_SMTP_USERNAME"),
    -    ("smtp.password", "MCAPTCHA_SMTP_PASSWORD"),
    -    ("smtp.port", "MCAPTCHA_SMTP_PORT"),
    -];
    -
    -#[cfg(not(tarpaulin_include))]
    -impl Settings {
    -    pub fn new() -> Result<Self, ConfigError> {
    -        let mut s = Config::builder();
    -
    -        const CURRENT_DIR: &str = "./config/default.toml";
    -        const ETC: &str = "/etc/mcaptcha/config.toml";
    -
    -        s = s
    -            .set_default("capatcha.enable_stats", true.to_string())
    -            .expect("unable to set capatcha.enable_stats default config");
    -
    -        // Will be overridden after config is parsed and loaded into Settings by
    -        // Settings::set_database_type.
    -        // This parameter is not ergonomic for users, but it is required and can be programatically
    -        // inferred. But we need a default value for config lib to parse successfully, since it is
    -        // DBType and not Option<DBType>
    -        s = s
    -            .set_default("database.database_type", DBType::Postgres.to_string())
    -            .expect("unable to set database.database_type default config");
    -
    -        if let Ok(path) = env::var("MCAPTCHA_CONFIG") {
    -            let absolute_path = Path::new(&path).canonicalize().unwrap();
    -            log::info!(
    -                "Loading config file from {}",
    -                absolute_path.to_str().unwrap()
    -            );
    -            s = s.add_source(File::with_name(absolute_path.to_str().unwrap()));
    -        } else if Path::new(CURRENT_DIR).exists() {
    -            let absolute_path = fs::canonicalize(CURRENT_DIR).unwrap();
    -            log::info!(
    -                "Loading config file from {}",
    -                absolute_path.to_str().unwrap()
    -            );
    -            // merging default config from file
    -            s = s.add_source(File::with_name(absolute_path.to_str().unwrap()));
    -        } else if Path::new(ETC).exists() {
    -            log::info!("{}", format!("Loading config file from {}", ETC));
    -            s = s.add_source(File::with_name(ETC));
    -        } else {
    -            log::warn!("Configuration file not found");
    -        }
    -
    -        s = Self::env_override(s);
    -
    -        let mut settings = s.build()?.try_deserialize::<Settings>()?;
    -        settings.check_url();
    -
    -        settings.set_database_type();
    -
    -        Ok(settings)
    -    }
    -    fn check_easy_captcha_config(&self) {
    -        let s = &self.captcha.default_difficulty_strategy;
    -        if s.avg_traffic_time.is_some() {
    -            if s.broke_my_site_traffic_time.is_none()
    -                || s.peak_sustainable_traffic_time.is_none()
    -            {
    -                panic!("if captcha.default_difficulty_strategy.avg_traffic_time is set, then captcha.default_difficulty_strategy.broke_my_site_traffic_time and captcha.default_difficulty_strategy.peak_sustainable_traffic_time must also be set");
    -            }
    -        }
    -        if s.peak_sustainable_traffic_time.is_some() {
    -            if s.avg_traffic_time.is_none() || s.peak_sustainable_traffic_time.is_none()
    -            {
    -                panic!("if captcha.default_difficulty_strategy.peak_sustainable_traffic_time is set, then captcha.default_difficulty_strategy.broke_my_site_traffic_time and captcha.default_difficulty_strategy.avg_traffic_time must also be set");
    -            }
    -        }
    -        if s.broke_my_site_traffic_time.is_some() {
    -            if s.avg_traffic_time.is_none() || s.peak_sustainable_traffic_time.is_none()
    -            {
    -                panic!("if captcha.default_difficulty_strategy.broke_my_site_traffic_time is set, then captcha.default_difficulty_strategy.peak_sustainable_traffic_time and captcha.default_difficulty_strategy.avg_traffic_time must also be set");
    -            }
    -        }
    -    }
    -
    -    fn env_override(mut s: ConfigBuilder<DefaultState>) -> ConfigBuilder<DefaultState> {
    -        for (parameter, env_var_name) in DEPRECATED_ENV_VARS.iter() {
    -            if let Ok(val) = env::var(env_var_name) {
    -                log::warn!(
    -                    "Found {env_var_name}. {env_var_name} will be deprecated soon. Please see https://github.com/mCaptcha/mCaptcha/blob/master/docs/CONFIGURATION.md for latest environment variable names"
    -                );
    -                s = s.set_override(parameter, val).unwrap();
    -            }
    -        }
    -
    -        for (parameter, env_var_name) in ENV_VAR_CONFIG.iter() {
    -            if let Ok(val) = env::var(env_var_name) {
    -                log::debug!(
    -                    "Overriding [{parameter}] with environment variable {env_var_name}"
    -                );
    -                s = s.set_override(parameter, val).unwrap();
    -            }
    -        }
    -
    -        s
    -    }
    -
    -    fn set_database_type(&mut self) {
    -        let url = Url::parse(&self.database.url)
    -            .expect("couldn't parse Database URL and detect database type");
    -        self.database.database_type = DBType::from_url(&url).unwrap();
    -    }
    -
    -    fn check_url(&self) {
    -        Url::parse(&self.source_code)
    -            .expect("Please enter a URL for source_code in settings");
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -
    -    use super::*;
    -
    -    #[test]
    -    fn deprecated_env_override_works() {
    -        use crate::tests::get_settings;
    -        let init_settings = get_settings();
    -        // so that it can be tested outside the macro (helper) too
    -        let mut new_settings;
    -
    -        macro_rules! helper {
    -
    -
    -            ($env:expr, $val:expr, $val_typed:expr, $($param:ident).+) => {
    -                println!("Setting env var {} to {} for test", $env, $val);
    -                env::set_var($env, $val);
    -                new_settings = get_settings();
    -                assert_eq!(new_settings.$($param).+, $val_typed);
    -                assert_ne!(new_settings.$($param).+, init_settings.$($param).+);
    -                env::remove_var($env);
    -            };
    -
    -
    -            ($env:expr, $val:expr, $($param:ident).+) => {
    -                helper!($env, $val.to_string(), $val, $($param).+);
    -            };
    -        }
    -
    -        /* top level */
    -        helper!("MCAPTCHA_DEBUG", !init_settings.debug, debug);
    -        helper!("MCAPTCHA_COMMERCIAL", !init_settings.commercial, commercial);
    -        helper!(
    -            "MCAPTCHA_ALLOW_REGISTRATION",
    -            !init_settings.allow_registration,
    -            allow_registration
    -        );
    -        helper!("MCAPTCHA_ALLOW_DEMO", !init_settings.allow_demo, allow_demo);
    -
    -        /* database_type */
    -
    -        /* redis.url */
    -        let env = "MCAPTCHA_REDIS_URL";
    -        let val = "redis://redis.example.org";
    -        println!("Setting env var {} to {} for test", env, val);
    -        env::set_var(env, val);
    -        new_settings = get_settings();
    -        assert_eq!(new_settings.redis.as_ref().unwrap().url, val);
    -        assert_ne!(
    -            new_settings.redis.as_ref().unwrap().url,
    -            init_settings.redis.as_ref().unwrap().url
    -        );
    -        env::remove_var(env);
    -
    -        /* redis.pool */
    -        let env = "MCAPTCHA_REDIS_POOL";
    -        let val = 999;
    -        println!("Setting env var {} to {} for test", env, val);
    -        env::set_var(env, val.to_string());
    -        new_settings = get_settings();
    -        assert_eq!(new_settings.redis.as_ref().unwrap().pool, val);
    -        assert_ne!(
    -            new_settings.redis.as_ref().unwrap().pool,
    -            init_settings.redis.as_ref().unwrap().pool
    -        );
    -        env::remove_var(env);
    -
    -        helper!("PORT", 0, server.port);
    -        helper!("MCAPTCHA_SERVER_DOMAIN", "example.org", server.domain);
    -        helper!(
    -            "MCAPTCHA_SERVER_COOKIE_SECRET",
    -            "dafasdfsdf",
    -            server.cookie_secret
    -        );
    -        helper!("MCAPTCHA_SERVER_IP", "9.9.9.9", server.ip);
    -        helper!("MCAPTCHA_SERVER_PROXY_HAS_TLS", true, server.proxy_has_tls);
    -
    -        /* captcha */
    -
    -        helper!("MCAPTCHA_CAPTCHA_SALT", "foobarasdfasdf", captcha.salt);
    -        helper!("MCAPTCHA_CAPTCHA_GC", 500, captcha.gc);
    -        helper!(
    -            "MCAPTCHA_captcha_RUNNERS",
    -            "500",
    -            Some(500),
    -            captcha.runners
    -        );
    -
    -        helper!(
    -            "MCAPTCHA_CAPTCHA_AVG_TRAFFIC_DIFFICULTY",
    -            999,
    -            captcha.default_difficulty_strategy.avg_traffic_difficulty
    -        );
    -        helper!(
    -            "MCAPTCHA_CAPTCHA_PEAK_TRAFFIC_DIFFICULTY",
    -            999,
    -            captcha
    -                .default_difficulty_strategy
    -                .peak_sustainable_traffic_difficulty
    -        );
    -        helper!(
    -            "MCAPTCHA_CAPTCHA_BROKE_MY_SITE_TRAFFIC",
    -            999,
    -            captcha
    -                .default_difficulty_strategy
    -                .broke_my_site_traffic_difficulty
    -        );
    -
    -        /* SMTP */
    -
    -        let vals = [
    -            "MCAPTCHA_SMTP_FROM",
    -            "MCAPTCHA_SMTP_REPLY_TO",
    -            "MCAPTCHA_SMTP_URL",
    -            "MCAPTCHA_SMTP_USERNAME",
    -            "MCAPTCHA_SMTP_PASSWORD",
    -            "MCAPTCHA_SMTP_PORT",
    -        ];
    -        for env in vals.iter() {
    -            println!("Setting env var {} to {} for test", env, env);
    -            env::set_var(env, env);
    -        }
    -
    -        let port = 9999;
    -        env::set_var("MCAPTCHA_SMTP_PORT", port.to_string());
    -
    -        new_settings = get_settings();
    -        let smtp_new = new_settings.smtp.as_ref().unwrap();
    -        let smtp_old = init_settings.smtp.as_ref().unwrap();
    -        assert_eq!(smtp_new.from, "MCAPTCHA_SMTP_FROM");
    -        assert_eq!(smtp_new.reply, "MCAPTCHA_SMTP_REPLY_TO");
    -        assert_eq!(smtp_new.username, "MCAPTCHA_SMTP_USERNAME");
    -        assert_eq!(smtp_new.password, "MCAPTCHA_SMTP_PASSWORD");
    -        assert_eq!(smtp_new.port, port);
    -        assert_ne!(smtp_new, smtp_old);
    -
    -        for env in vals.iter() {
    -            env::remove_var(env);
    -        }
    -    }
    -
    -    #[test]
    -    fn env_override_works() {
    -        use crate::tests::get_settings;
    -        let init_settings = get_settings();
    -        // so that it can be tested outside the macro (helper) too
    -        let mut new_settings;
    -
    -        macro_rules! helper {
    -
    -
    -            ($env:expr, $val:expr, $val_typed:expr, $($param:ident).+) => {
    -                println!("Setting env var {} to {} for test", $env, $val);
    -                env::set_var($env, $val);
    -                new_settings = get_settings();
    -                assert_eq!(new_settings.$($param).+, $val_typed);
    -                assert_ne!(new_settings.$($param).+, init_settings.$($param).+);
    -                env::remove_var($env);
    -            };
    -
    -
    -            ($env:expr, $val:expr, $($param:ident).+) => {
    -                helper!($env, $val.to_string(), $val, $($param).+);
    -            };
    -        }
    -
    -        /* top level */
    -        helper!("MCAPTCHA_debug", false, debug);
    -        helper!("MCAPTCHA_commercial", true, commercial);
    -        helper!("MCAPTCHA_allow_registration", false, allow_registration);
    -        helper!("MCAPTCHA_allow_demo", false, allow_demo);
    -
    -        /* database_type */
    -
    -        helper!(
    -            "DATABASE_URL",
    -            "postgres://postgres:password@localhost:5432/postgres",
    -            database.url
    -        );
    -        assert_eq!(new_settings.database.database_type, DBType::Postgres);
    -        helper!(
    -            "DATABASE_URL",
    -            "mysql://maria:password@localhost/maria",
    -            database.url
    -        );
    -        assert_eq!(new_settings.database.database_type, DBType::Maria);
    -        helper!("MCAPTCHA_database_POOL", 1000, database.pool);
    -
    -        /* redis */
    -
    -        /* redis.url */
    -        let env = "MCAPTCHA_redis_URL";
    -        let val = "redis://redis.example.org";
    -        println!("Setting env var {} to {} for test", env, val);
    -        env::set_var(env, val);
    -        new_settings = get_settings();
    -        assert_eq!(new_settings.redis.as_ref().unwrap().url, val);
    -        assert_ne!(
    -            new_settings.redis.as_ref().unwrap().url,
    -            init_settings.redis.as_ref().unwrap().url
    -        );
    -        env::remove_var(env);
    -
    -        /* redis.pool */
    -        let env = "MCAPTCHA_redis_POOL";
    -        let val = 999;
    -        println!("Setting env var {} to {} for test", env, val);
    -        env::set_var(env, val.to_string());
    -        new_settings = get_settings();
    -        assert_eq!(new_settings.redis.as_ref().unwrap().pool, val);
    -        assert_ne!(
    -            new_settings.redis.as_ref().unwrap().pool,
    -            init_settings.redis.as_ref().unwrap().pool
    -        );
    -        env::remove_var(env);
    -
    -        helper!("PORT", 0, server.port);
    -        helper!("MCAPTCHA_server_DOMAIN", "example.org", server.domain);
    -        helper!(
    -            "MCAPTCHA__server_COOKIE_SECRET",
    -            "dafasdfsdf",
    -            server.cookie_secret
    -        );
    -        helper!("MCAPTCHA__server_IP", "9.9.9.9", server.ip);
    -        helper!("MCAPTCHA__server_PROXY_HAS_TLS", true, server.proxy_has_tls);
    -
    -        /* captcha */
    -
    -        helper!("MCAPTCHA_captcha_SALT", "foobarasdfasdf", captcha.salt);
    -        helper!("MCAPTCHA_captcha_GC", 500, captcha.gc);
    -        helper!(
    -            "MCAPTCHA_captcha_RUNNERS",
    -            "500",
    -            Some(500),
    -            captcha.runners
    -        );
    -
    -        helper!("MCAPTCHA_captcha_QUEUE_LENGTH", 500, captcha.queue_length);
    -        helper!("MCAPTCHA_captcha_ENABLE_STATS", false, captcha.enable_stats);
    -        helper!(
    -            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_difficulty",
    -            999,
    -            captcha.default_difficulty_strategy.avg_traffic_difficulty
    -        );
    -        helper!("MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_difficulty", 999 , captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty);
    -        helper!("MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_difficulty", 999 , captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty);
    -        helper!(
    -            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_duration",
    -            999,
    -            captcha.default_difficulty_strategy.duration
    -        );
    -        helper!(
    -            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_time",
    -            "10",
    -            Some(10),
    -            captcha.default_difficulty_strategy.avg_traffic_time
    -        );
    -
    -        helper!(
    -            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_time",
    -            "20",
    -            Some(20),
    -            captcha
    -                .default_difficulty_strategy
    -                .peak_sustainable_traffic_time
    -        );
    -
    -        helper!(
    -            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_time",
    -            "30",
    -            Some(30),
    -            captcha
    -                .default_difficulty_strategy
    -                .broke_my_site_traffic_time
    -        );
    -
    -        /* SMTP */
    -
    -        let vals = [
    -            "MCAPTCHA_smtp_FROM",
    -            "MCAPTCHA_smtp_REPLY",
    -            "MCAPTCHA_smtp_URL",
    -            "MCAPTCHA_smtp_USERNAME",
    -            "MCAPTCHA_smtp_PASSWORD",
    -            "MCAPTCHA_smtp_PORT",
    -        ];
    -        for env in vals.iter() {
    -            println!("Setting env var {} to {} for test", env, env);
    -            env::set_var(env, env);
    -        }
    -
    -        let port = 9999;
    -        env::set_var("MCAPTCHA_smtp_PORT", port.to_string());
    -
    -        new_settings = get_settings();
    -        let smtp_new = new_settings.smtp.as_ref().unwrap();
    -        let smtp_old = init_settings.smtp.as_ref().unwrap();
    -        assert_eq!(smtp_new.from, "MCAPTCHA_smtp_FROM");
    -        assert_eq!(smtp_new.reply, "MCAPTCHA_smtp_REPLY");
    -        assert_eq!(smtp_new.username, "MCAPTCHA_smtp_USERNAME");
    -        assert_eq!(smtp_new.password, "MCAPTCHA_smtp_PASSWORD");
    -        assert_eq!(smtp_new.port, port);
    -        assert_ne!(smtp_new, smtp_old);
    -
    -        for env in vals.iter() {
    -            env::remove_var(env);
    -        }
    -    }
    -
    -    //    #[test]
    -    //    fn url_prefix_test() {
    -    //        let mut settings = Settings::new().unwrap();
    -    //        assert!(settings.server.url_prefix.is_none());
    -    //        settings.server.url_prefix = Some("test".into());
    -    //        settings.server.check_url_prefix();
    -    //        settings.server.url_prefix = Some("    ".into());
    -    //        settings.server.check_url_prefix();
    -    //        assert!(settings.server.url_prefix.is_none());
    -    //    }
    -    //
    -    //    #[test]
    -    //    fn smtp_config_works() {
    -    //        let settings = Settings::new().unwrap();
    -    //        assert!(settings.smtp.is_some());
    -    //        assert_eq!(settings.smtp.as_ref().unwrap().password, "password");
    -    //        assert_eq!(settings.smtp.as_ref().unwrap().username, "admin");
    -    //    }
    -}
    -
    \ No newline at end of file +settings.rs - source

    mcaptcha/
    settings.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::path::Path;
    +7use std::{env, fs};
    +8
    +9use config::builder::DefaultState;
    +10use config::{Config, ConfigBuilder, ConfigError, File};
    +11use derive_more::Display;
    +12
    +13use serde::{Deserialize, Serialize};
    +14use url::Url;
    +15
    +16#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +17pub struct Server {
    +18    pub port: u32,
    +19    pub domain: String,
    +20    pub cookie_secret: String,
    +21    pub ip: String,
    +22    // TODO: remove
    +23    pub url_prefix: Option<String>,
    +24    pub proxy_has_tls: bool,
    +25}
    +26
    +27#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +28pub struct Captcha {
    +29    pub salt: String,
    +30    pub gc: u64,
    +31    pub runners: Option<usize>,
    +32    pub queue_length: usize,
    +33    pub enable_stats: bool,
    +34    pub default_difficulty_strategy: DefaultDifficultyStrategy,
    +35}
    +36
    +37#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +38pub struct DefaultDifficultyStrategy {
    +39    pub avg_traffic_difficulty: u32,
    +40    pub avg_traffic_time: Option<u32>,
    +41    pub peak_sustainable_traffic_difficulty: u32,
    +42    pub peak_sustainable_traffic_time: Option<u32>,
    +43    pub broke_my_site_traffic_time: Option<u32>,
    +44    pub broke_my_site_traffic_difficulty: u32,
    +45    pub duration: u32,
    +46}
    +47
    +48#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +49pub struct Smtp {
    +50    pub from: String,
    +51    pub reply: String,
    +52    pub url: String,
    +53    pub username: String,
    +54    pub password: String,
    +55    pub port: u16,
    +56}
    +57
    +58impl Server {
    +59    pub fn get_ip(&self) -> String {
    +60        format!("{}:{}", self.ip, self.port)
    +61    }
    +62}
    +63
    +64#[derive(Deserialize, Serialize, Display, Eq, PartialEq, Clone, Debug)]
    +65#[serde(rename_all = "lowercase")]
    +66pub enum DBType {
    +67    #[display(fmt = "postgres")]
    +68    Postgres,
    +69    #[display(fmt = "maria")]
    +70    Maria,
    +71}
    +72
    +73impl DBType {
    +74    fn from_url(url: &Url) -> Result<Self, ConfigError> {
    +75        match url.scheme() {
    +76            "mysql" => Ok(Self::Maria),
    +77            "postgres" => Ok(Self::Postgres),
    +78            _ => Err(ConfigError::Message("Unknown database type".into())),
    +79        }
    +80    }
    +81}
    +82
    +83#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +84pub struct Database {
    +85    pub url: String,
    +86    pub pool: u32,
    +87    pub database_type: DBType,
    +88}
    +89
    +90#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +91pub struct Redis {
    +92    pub url: String,
    +93    pub pool: u32,
    +94}
    +95
    +96#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +97pub struct Survey {
    +98    pub nodes: Vec<url::Url>,
    +99    pub rate_limit: u64,
    +100    pub instance_root_url: Url,
    +101}
    +102
    +103#[derive(Debug, Clone, Deserialize, Eq, PartialEq)]
    +104pub struct Settings {
    +105    pub debug: bool,
    +106    pub commercial: bool,
    +107    pub source_code: String,
    +108    pub allow_registration: bool,
    +109    pub allow_demo: bool,
    +110    pub database: Database,
    +111    pub survey: Option<Survey>,
    +112    pub redis: Option<Redis>,
    +113    pub server: Server,
    +114    pub captcha: Captcha,
    +115    pub smtp: Option<Smtp>,
    +116}
    +117
    +118const ENV_VAR_CONFIG: [(&str, &str); 32] = [
    +119    /* top-level */
    +120    ("debug", "MCAPTCHA_debug"),
    +121    ("commercial", "MCAPTCHA_commercial"),
    +122    ("source_code", "MCAPTCHA_source_code"),
    +123    ("allow_registration", "MCAPTCHA_allow_registration"),
    +124    ("allow_demo", "MCAPTCHA_allow_demo"),
    +125
    +126    /* database */
    +127    ("database.url", "DATABASE_URL"),
    +128    ("database.pool", "MCAPTCHA_database_POOL"),
    +129
    +130    /* redis */
    +131    ("redis.url", "MCAPTCHA_redis_URL"),
    +132    ("redis.pool", "MCAPTCHA_redis_POOL"),
    +133
    +134    /* server */
    +135    ("server.port", "PORT"),
    +136    ("server.domain", "MCAPTCHA_server_DOMAIN"),
    +137    ("server.cookie_secret", "MCAPTCHA__server_COOKIE_SECRET"),
    +138    ("server.ip", "MCAPTCHA__server_IP"),
    +139    ("server.proxy_has_tls", "MCAPTCHA__server_PROXY_HAS_TLS"),
    +140
    +141
    +142    /* captcha */
    +143    ("captcha.salt", "MCAPTCHA_captcha_SALT"),
    +144    ("captcha.gc", "MCAPTCHA_captcha_GC"),
    +145    ("captcha.runners", "MCAPTCHA_captcha_RUNNERS"),
    +146    ("captcha.queue_length", "MCAPTCHA_captcha_QUEUE_LENGTH"),
    +147    ("captcha.enable_stats", "MCAPTCHA_captcha_ENABLE_STATS"),
    +148    ("captcha.default_difficulty_strategy.avg_traffic_difficulty", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_difficulty"),
    +149    ("captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_difficulty"),
    +150    ("captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty",
    +151     "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_difficulty"),
    +152    ( "captcha.default_difficulty_strategy.duration",
    +153         "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_duration"
    +154     ),
    +155    ("captcha.default_difficulty_strategy.avg_traffic_time", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_time"),
    +156    ("captcha.default_difficulty_strategy.peak_sustainable_traffic_time", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_time"),
    +157    ("captcha.default_difficulty_strategy.broke_my_site_traffic_time", "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_time"),
    +158
    +159
    +160    /* SMTP */
    +161    ("smtp.from", "MCAPTCHA_smtp_FROM"),
    +162    ("smtp.reply", "MCAPTCHA_smtp_REPLY"),
    +163    ("smtp.url", "MCAPTCHA_smtp_URL"),
    +164    ("smtp.username", "MCAPTCHA_smtp_USERNAME"),
    +165    ("smtp.password", "MCAPTCHA_smtp_PASSWORD"),
    +166    ("smtp.port", "MCAPTCHA_smtp_PORT"),
    +167
    +168
    +169
    +170];
    +171
    +172const DEPRECATED_ENV_VARS: [(&str, &str); 23] = [
    +173    ("debug", "MCAPTCHA_DEBUG"),
    +174    ("commercial", "MCAPTCHA_COMMERCIAL"),
    +175    ("source_code", "MCAPTCHA_SOURCE_CODE"),
    +176    ("allow_registration", "MCAPTCHA_ALLOW_REGISTRATION"),
    +177    ("allow_demo", "MCAPTCHA_ALLOW_DEMO"),
    +178    ("redis.pool", "MCAPTCHA_REDIS_POOL"),
    +179    ("redis.url", "MCAPTCHA_REDIS_URL"),
    +180    ("server.port", "MCAPTCHA_SERVER_PORT"),
    +181    ("server.ip", "MCAPTCHA_SERVER_IP"),
    +182    ("server.domain", "MCAPTCHA_SERVER_DOMAIN"),
    +183    ("server.cookie_secret", "MCAPTCHA_SERVER_COOKIE_SECRET"),
    +184    ("server.proxy_has_tls", "MCAPTCHA_SERVER_PROXY_HAS_TLS"),
    +185    ("captcha.salt", "MCAPTCHA_CAPTCHA_SALT"),
    +186    ("captcha.gc", "MCAPTCHA_CAPTCHA_GC"),
    +187    (
    +188        "captcha.default_difficulty_strategy.avg_traffic_difficulty",
    +189        "MCAPTCHA_CAPTCHA_AVG_TRAFFIC_DIFFICULTY",
    +190    ),
    +191    (
    +192        "captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty",
    +193        "MCAPTCHA_CAPTCHA_PEAK_TRAFFIC_DIFFICULTY",
    +194    ),
    +195    (
    +196        "captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty",
    +197        "MCAPTCHA_CAPTCHA_BROKE_MY_SITE_TRAFFIC",
    +198    ),
    +199    ("smtp.from", "MCAPTCHA_SMTP_FROM"),
    +200    ("smtp.reply", "MCAPTCHA_SMTP_REPLY_TO"),
    +201    ("smtp.url", "MCAPTCHA_SMTP_URL"),
    +202    ("smtp.username", "MCAPTCHA_SMTP_USERNAME"),
    +203    ("smtp.password", "MCAPTCHA_SMTP_PASSWORD"),
    +204    ("smtp.port", "MCAPTCHA_SMTP_PORT"),
    +205];
    +206
    +207impl Settings {
    +208    pub fn new() -> Result<Self, ConfigError> {
    +209        let mut s = Config::builder();
    +210
    +211        const CURRENT_DIR: &str = "./config/default.toml";
    +212        const ETC: &str = "/etc/mcaptcha/config.toml";
    +213
    +214        s = s
    +215            .set_default("capatcha.enable_stats", true.to_string())
    +216            .expect("unable to set capatcha.enable_stats default config");
    +217
    +218        // Will be overridden after config is parsed and loaded into Settings by
    +219        // Settings::set_database_type.
    +220        // This parameter is not ergonomic for users, but it is required and can be programatically
    +221        // inferred. But we need a default value for config lib to parse successfully, since it is
    +222        // DBType and not Option<DBType>
    +223        s = s
    +224            .set_default("database.database_type", DBType::Postgres.to_string())
    +225            .expect("unable to set database.database_type default config");
    +226
    +227        if let Ok(path) = env::var("MCAPTCHA_CONFIG") {
    +228            let absolute_path = Path::new(&path).canonicalize().unwrap();
    +229            log::info!(
    +230                "Loading config file from {}",
    +231                absolute_path.to_str().unwrap()
    +232            );
    +233            s = s.add_source(File::with_name(absolute_path.to_str().unwrap()));
    +234        } else if Path::new(CURRENT_DIR).exists() {
    +235            let absolute_path = fs::canonicalize(CURRENT_DIR).unwrap();
    +236            log::info!(
    +237                "Loading config file from {}",
    +238                absolute_path.to_str().unwrap()
    +239            );
    +240            // merging default config from file
    +241            s = s.add_source(File::with_name(absolute_path.to_str().unwrap()));
    +242        } else if Path::new(ETC).exists() {
    +243            log::info!("{}", format!("Loading config file from {}", ETC));
    +244            s = s.add_source(File::with_name(ETC));
    +245        } else {
    +246            log::warn!("Configuration file not found");
    +247        }
    +248
    +249        s = Self::env_override(s);
    +250
    +251        let mut settings = s.build()?.try_deserialize::<Settings>()?;
    +252        settings.check_url();
    +253
    +254        settings.set_database_type();
    +255
    +256        Ok(settings)
    +257    }
    +258    fn check_easy_captcha_config(&self) {
    +259        let s = &self.captcha.default_difficulty_strategy;
    +260        if s.avg_traffic_time.is_some() {
    +261            if s.broke_my_site_traffic_time.is_none()
    +262                || s.peak_sustainable_traffic_time.is_none()
    +263            {
    +264                panic!("if captcha.default_difficulty_strategy.avg_traffic_time is set, then captcha.default_difficulty_strategy.broke_my_site_traffic_time and captcha.default_difficulty_strategy.peak_sustainable_traffic_time must also be set");
    +265            }
    +266        }
    +267        if s.peak_sustainable_traffic_time.is_some() {
    +268            if s.avg_traffic_time.is_none() || s.peak_sustainable_traffic_time.is_none()
    +269            {
    +270                panic!("if captcha.default_difficulty_strategy.peak_sustainable_traffic_time is set, then captcha.default_difficulty_strategy.broke_my_site_traffic_time and captcha.default_difficulty_strategy.avg_traffic_time must also be set");
    +271            }
    +272        }
    +273        if s.broke_my_site_traffic_time.is_some() {
    +274            if s.avg_traffic_time.is_none() || s.peak_sustainable_traffic_time.is_none()
    +275            {
    +276                panic!("if captcha.default_difficulty_strategy.broke_my_site_traffic_time is set, then captcha.default_difficulty_strategy.peak_sustainable_traffic_time and captcha.default_difficulty_strategy.avg_traffic_time must also be set");
    +277            }
    +278        }
    +279    }
    +280
    +281    fn env_override(mut s: ConfigBuilder<DefaultState>) -> ConfigBuilder<DefaultState> {
    +282        for (parameter, env_var_name) in DEPRECATED_ENV_VARS.iter() {
    +283            if let Ok(val) = env::var(env_var_name) {
    +284                log::warn!(
    +285                    "Found {env_var_name}. {env_var_name} will be deprecated soon. Please see https://github.com/mCaptcha/mCaptcha/blob/master/docs/CONFIGURATION.md for latest environment variable names"
    +286                );
    +287                s = s.set_override(parameter, val).unwrap();
    +288            }
    +289        }
    +290
    +291        for (parameter, env_var_name) in ENV_VAR_CONFIG.iter() {
    +292            if let Ok(val) = env::var(env_var_name) {
    +293                log::debug!(
    +294                    "Overriding [{parameter}] with environment variable {env_var_name}"
    +295                );
    +296                s = s.set_override(parameter, val).unwrap();
    +297            }
    +298        }
    +299
    +300        s
    +301    }
    +302
    +303    fn set_database_type(&mut self) {
    +304        let url = Url::parse(&self.database.url)
    +305            .expect("couldn't parse Database URL and detect database type");
    +306        self.database.database_type = DBType::from_url(&url).unwrap();
    +307    }
    +308
    +309    fn check_url(&self) {
    +310        Url::parse(&self.source_code)
    +311            .expect("Please enter a URL for source_code in settings");
    +312    }
    +313}
    +314
    +315#[cfg(test)]
    +316mod tests {
    +317
    +318    use super::*;
    +319
    +320    #[test]
    +321    fn deprecated_env_override_works() {
    +322        use crate::tests::get_settings;
    +323        let init_settings = get_settings();
    +324        // so that it can be tested outside the macro (helper) too
    +325        let mut new_settings;
    +326
    +327        macro_rules! helper {
    +328
    +329
    +330            ($env:expr, $val:expr, $val_typed:expr, $($param:ident).+) => {
    +331                println!("Setting env var {} to {} for test", $env, $val);
    +332                env::set_var($env, $val);
    +333                new_settings = get_settings();
    +334                assert_eq!(new_settings.$($param).+, $val_typed);
    +335                assert_ne!(new_settings.$($param).+, init_settings.$($param).+);
    +336                env::remove_var($env);
    +337            };
    +338
    +339
    +340            ($env:expr, $val:expr, $($param:ident).+) => {
    +341                helper!($env, $val.to_string(), $val, $($param).+);
    +342            };
    +343        }
    +344
    +345        /* top level */
    +346        helper!("MCAPTCHA_DEBUG", !init_settings.debug, debug);
    +347        helper!("MCAPTCHA_COMMERCIAL", !init_settings.commercial, commercial);
    +348        helper!(
    +349            "MCAPTCHA_ALLOW_REGISTRATION",
    +350            !init_settings.allow_registration,
    +351            allow_registration
    +352        );
    +353        helper!("MCAPTCHA_ALLOW_DEMO", !init_settings.allow_demo, allow_demo);
    +354
    +355        /* database_type */
    +356
    +357        /* redis.url */
    +358        let env = "MCAPTCHA_REDIS_URL";
    +359        let val = "redis://redis.example.org";
    +360        println!("Setting env var {} to {} for test", env, val);
    +361        env::set_var(env, val);
    +362        new_settings = get_settings();
    +363        assert_eq!(new_settings.redis.as_ref().unwrap().url, val);
    +364        assert_ne!(
    +365            new_settings.redis.as_ref().unwrap().url,
    +366            init_settings.redis.as_ref().unwrap().url
    +367        );
    +368        env::remove_var(env);
    +369
    +370        /* redis.pool */
    +371        let env = "MCAPTCHA_REDIS_POOL";
    +372        let val = 999;
    +373        println!("Setting env var {} to {} for test", env, val);
    +374        env::set_var(env, val.to_string());
    +375        new_settings = get_settings();
    +376        assert_eq!(new_settings.redis.as_ref().unwrap().pool, val);
    +377        assert_ne!(
    +378            new_settings.redis.as_ref().unwrap().pool,
    +379            init_settings.redis.as_ref().unwrap().pool
    +380        );
    +381        env::remove_var(env);
    +382
    +383        helper!("PORT", 0, server.port);
    +384        helper!("MCAPTCHA_SERVER_DOMAIN", "example.org", server.domain);
    +385        helper!(
    +386            "MCAPTCHA_SERVER_COOKIE_SECRET",
    +387            "dafasdfsdf",
    +388            server.cookie_secret
    +389        );
    +390        helper!("MCAPTCHA_SERVER_IP", "9.9.9.9", server.ip);
    +391        helper!("MCAPTCHA_SERVER_PROXY_HAS_TLS", true, server.proxy_has_tls);
    +392
    +393        /* captcha */
    +394
    +395        helper!("MCAPTCHA_CAPTCHA_SALT", "foobarasdfasdf", captcha.salt);
    +396        helper!("MCAPTCHA_CAPTCHA_GC", 500, captcha.gc);
    +397        helper!(
    +398            "MCAPTCHA_captcha_RUNNERS",
    +399            "500",
    +400            Some(500),
    +401            captcha.runners
    +402        );
    +403
    +404        helper!(
    +405            "MCAPTCHA_CAPTCHA_AVG_TRAFFIC_DIFFICULTY",
    +406            999,
    +407            captcha.default_difficulty_strategy.avg_traffic_difficulty
    +408        );
    +409        helper!(
    +410            "MCAPTCHA_CAPTCHA_PEAK_TRAFFIC_DIFFICULTY",
    +411            999,
    +412            captcha
    +413                .default_difficulty_strategy
    +414                .peak_sustainable_traffic_difficulty
    +415        );
    +416        helper!(
    +417            "MCAPTCHA_CAPTCHA_BROKE_MY_SITE_TRAFFIC",
    +418            999,
    +419            captcha
    +420                .default_difficulty_strategy
    +421                .broke_my_site_traffic_difficulty
    +422        );
    +423
    +424        /* SMTP */
    +425
    +426        let vals = [
    +427            "MCAPTCHA_SMTP_FROM",
    +428            "MCAPTCHA_SMTP_REPLY_TO",
    +429            "MCAPTCHA_SMTP_URL",
    +430            "MCAPTCHA_SMTP_USERNAME",
    +431            "MCAPTCHA_SMTP_PASSWORD",
    +432            "MCAPTCHA_SMTP_PORT",
    +433        ];
    +434        for env in vals.iter() {
    +435            println!("Setting env var {} to {} for test", env, env);
    +436            env::set_var(env, env);
    +437        }
    +438
    +439        let port = 9999;
    +440        env::set_var("MCAPTCHA_SMTP_PORT", port.to_string());
    +441
    +442        new_settings = get_settings();
    +443        let smtp_new = new_settings.smtp.as_ref().unwrap();
    +444        let smtp_old = init_settings.smtp.as_ref().unwrap();
    +445        assert_eq!(smtp_new.from, "MCAPTCHA_SMTP_FROM");
    +446        assert_eq!(smtp_new.reply, "MCAPTCHA_SMTP_REPLY_TO");
    +447        assert_eq!(smtp_new.username, "MCAPTCHA_SMTP_USERNAME");
    +448        assert_eq!(smtp_new.password, "MCAPTCHA_SMTP_PASSWORD");
    +449        assert_eq!(smtp_new.port, port);
    +450        assert_ne!(smtp_new, smtp_old);
    +451
    +452        for env in vals.iter() {
    +453            env::remove_var(env);
    +454        }
    +455    }
    +456
    +457    #[test]
    +458    fn env_override_works() {
    +459        use crate::tests::get_settings;
    +460        let init_settings = get_settings();
    +461        // so that it can be tested outside the macro (helper) too
    +462        let mut new_settings;
    +463
    +464        macro_rules! helper {
    +465
    +466
    +467            ($env:expr, $val:expr, $val_typed:expr, $($param:ident).+) => {
    +468                println!("Setting env var {} to {} for test", $env, $val);
    +469                env::set_var($env, $val);
    +470                new_settings = get_settings();
    +471                assert_eq!(new_settings.$($param).+, $val_typed);
    +472                assert_ne!(new_settings.$($param).+, init_settings.$($param).+);
    +473                env::remove_var($env);
    +474            };
    +475
    +476
    +477            ($env:expr, $val:expr, $($param:ident).+) => {
    +478                helper!($env, $val.to_string(), $val, $($param).+);
    +479            };
    +480        }
    +481
    +482        /* top level */
    +483        helper!("MCAPTCHA_debug", false, debug);
    +484        helper!("MCAPTCHA_commercial", true, commercial);
    +485        helper!("MCAPTCHA_allow_registration", false, allow_registration);
    +486        helper!("MCAPTCHA_allow_demo", false, allow_demo);
    +487
    +488        /* database_type */
    +489
    +490        helper!(
    +491            "DATABASE_URL",
    +492            "postgres://postgres:password@localhost:5432/postgres",
    +493            database.url
    +494        );
    +495        assert_eq!(new_settings.database.database_type, DBType::Postgres);
    +496        helper!(
    +497            "DATABASE_URL",
    +498            "mysql://maria:password@localhost/maria",
    +499            database.url
    +500        );
    +501        assert_eq!(new_settings.database.database_type, DBType::Maria);
    +502        helper!("MCAPTCHA_database_POOL", 1000, database.pool);
    +503
    +504        /* redis */
    +505
    +506        /* redis.url */
    +507        let env = "MCAPTCHA_redis_URL";
    +508        let val = "redis://redis.example.org";
    +509        println!("Setting env var {} to {} for test", env, val);
    +510        env::set_var(env, val);
    +511        new_settings = get_settings();
    +512        assert_eq!(new_settings.redis.as_ref().unwrap().url, val);
    +513        assert_ne!(
    +514            new_settings.redis.as_ref().unwrap().url,
    +515            init_settings.redis.as_ref().unwrap().url
    +516        );
    +517        env::remove_var(env);
    +518
    +519        /* redis.pool */
    +520        let env = "MCAPTCHA_redis_POOL";
    +521        let val = 999;
    +522        println!("Setting env var {} to {} for test", env, val);
    +523        env::set_var(env, val.to_string());
    +524        new_settings = get_settings();
    +525        assert_eq!(new_settings.redis.as_ref().unwrap().pool, val);
    +526        assert_ne!(
    +527            new_settings.redis.as_ref().unwrap().pool,
    +528            init_settings.redis.as_ref().unwrap().pool
    +529        );
    +530        env::remove_var(env);
    +531
    +532        helper!("PORT", 0, server.port);
    +533        helper!("MCAPTCHA_server_DOMAIN", "example.org", server.domain);
    +534        helper!(
    +535            "MCAPTCHA__server_COOKIE_SECRET",
    +536            "dafasdfsdf",
    +537            server.cookie_secret
    +538        );
    +539        helper!("MCAPTCHA__server_IP", "9.9.9.9", server.ip);
    +540        helper!("MCAPTCHA__server_PROXY_HAS_TLS", true, server.proxy_has_tls);
    +541
    +542        /* captcha */
    +543
    +544        helper!("MCAPTCHA_captcha_SALT", "foobarasdfasdf", captcha.salt);
    +545        helper!("MCAPTCHA_captcha_GC", 500, captcha.gc);
    +546        helper!(
    +547            "MCAPTCHA_captcha_RUNNERS",
    +548            "500",
    +549            Some(500),
    +550            captcha.runners
    +551        );
    +552
    +553        helper!("MCAPTCHA_captcha_QUEUE_LENGTH", 500, captcha.queue_length);
    +554        helper!("MCAPTCHA_captcha_ENABLE_STATS", false, captcha.enable_stats);
    +555        helper!(
    +556            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_difficulty",
    +557            999,
    +558            captcha.default_difficulty_strategy.avg_traffic_difficulty
    +559        );
    +560        helper!("MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_difficulty", 999 , captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty);
    +561        helper!("MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_difficulty", 999 , captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty);
    +562        helper!(
    +563            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_duration",
    +564            999,
    +565            captcha.default_difficulty_strategy.duration
    +566        );
    +567        helper!(
    +568            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_avg_traffic_time",
    +569            "10",
    +570            Some(10),
    +571            captcha.default_difficulty_strategy.avg_traffic_time
    +572        );
    +573
    +574        helper!(
    +575            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_peak_sustainable_traffic_time",
    +576            "20",
    +577            Some(20),
    +578            captcha
    +579                .default_difficulty_strategy
    +580                .peak_sustainable_traffic_time
    +581        );
    +582
    +583        helper!(
    +584            "MCAPTCHA_captcha_DEFAULT_DIFFICULTY_STRATEGY_broke_my_site_traffic_time",
    +585            "30",
    +586            Some(30),
    +587            captcha
    +588                .default_difficulty_strategy
    +589                .broke_my_site_traffic_time
    +590        );
    +591
    +592        /* SMTP */
    +593
    +594        let vals = [
    +595            "MCAPTCHA_smtp_FROM",
    +596            "MCAPTCHA_smtp_REPLY",
    +597            "MCAPTCHA_smtp_URL",
    +598            "MCAPTCHA_smtp_USERNAME",
    +599            "MCAPTCHA_smtp_PASSWORD",
    +600            "MCAPTCHA_smtp_PORT",
    +601        ];
    +602        for env in vals.iter() {
    +603            println!("Setting env var {} to {} for test", env, env);
    +604            env::set_var(env, env);
    +605        }
    +606
    +607        let port = 9999;
    +608        env::set_var("MCAPTCHA_smtp_PORT", port.to_string());
    +609
    +610        new_settings = get_settings();
    +611        let smtp_new = new_settings.smtp.as_ref().unwrap();
    +612        let smtp_old = init_settings.smtp.as_ref().unwrap();
    +613        assert_eq!(smtp_new.from, "MCAPTCHA_smtp_FROM");
    +614        assert_eq!(smtp_new.reply, "MCAPTCHA_smtp_REPLY");
    +615        assert_eq!(smtp_new.username, "MCAPTCHA_smtp_USERNAME");
    +616        assert_eq!(smtp_new.password, "MCAPTCHA_smtp_PASSWORD");
    +617        assert_eq!(smtp_new.port, port);
    +618        assert_ne!(smtp_new, smtp_old);
    +619
    +620        for env in vals.iter() {
    +621            env::remove_var(env);
    +622        }
    +623    }
    +624
    +625    //    #[test]
    +626    //    fn url_prefix_test() {
    +627    //        let mut settings = Settings::new().unwrap();
    +628    //        assert!(settings.server.url_prefix.is_none());
    +629    //        settings.server.url_prefix = Some("test".into());
    +630    //        settings.server.check_url_prefix();
    +631    //        settings.server.url_prefix = Some("    ".into());
    +632    //        settings.server.check_url_prefix();
    +633    //        assert!(settings.server.url_prefix.is_none());
    +634    //    }
    +635    //
    +636    //    #[test]
    +637    //    fn smtp_config_works() {
    +638    //        let settings = Settings::new().unwrap();
    +639    //        assert!(settings.smtp.is_some());
    +640    //        assert_eq!(settings.smtp.as_ref().unwrap().password, "password");
    +641    //        assert_eq!(settings.smtp.as_ref().unwrap().username, "admin");
    +642    //    }
    +643}
    \ 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 bdb28a3b..6f6f761a 100644 --- a/src/mcaptcha/static_assets/filemap.rs.html +++ b/src/mcaptcha/static_assets/filemap.rs.html @@ -1,73 +1,35 @@ -filemap.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use libcachebust::Files;
    -
    -pub struct FileMap {
    -    pub files: Files,
    -}
    -
    -impl FileMap {
    -    #[allow(clippy::new_without_default)]
    -    pub fn new() -> Self {
    -        let map = include_str!("../libcachebust_data.json");
    -        let files = Files::new(map);
    -        Self { files }
    -    }
    -    pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str> {
    -        let file_path = self.files.get_full_path(path);
    -        file_path.map(|file_path| &file_path[1..])
    -    }
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -
    -    #[test]
    -    fn filemap_works() {
    -        let files = super::FileMap::new();
    -        let css = files.get("./static/cache/bundle/css/main.css").unwrap();
    -        println!("{}", css);
    -        assert!(css.contains("/assets/bundle/css"));
    -    }
    -}
    -
    \ No newline at end of file +filemap.rs - source

    mcaptcha/static_assets/
    filemap.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use libcachebust::Files;
    +7
    +8pub struct FileMap {
    +9    pub files: Files,
    +10}
    +11
    +12impl FileMap {
    +13    #[allow(clippy::new_without_default)]
    +14    pub fn new() -> Self {
    +15        let map = include_str!("../libcachebust_data.json");
    +16        let files = Files::new(map);
    +17        Self { files }
    +18    }
    +19    pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str> {
    +20        let file_path = self.files.get_full_path(path);
    +21        file_path.map(|file_path| &file_path[1..])
    +22    }
    +23}
    +24
    +25#[cfg(test)]
    +26mod tests {
    +27
    +28    #[test]
    +29    fn filemap_works() {
    +30        let files = super::FileMap::new();
    +31        let css = files.get("./static/cache/bundle/css/main.css").unwrap();
    +32        println!("{}", css);
    +33        assert!(css.contains("/assets/bundle/css"));
    +34    }
    +35}
    \ 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 cc121f5a..f2faaa37 100644 --- a/src/mcaptcha/static_assets/mod.rs.html +++ b/src/mcaptcha/static_assets/mod.rs.html @@ -1,31 +1,14 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -pub mod filemap;
    -pub mod static_files;
    -
    -pub use filemap::FileMap;
    -
    -pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    -    cfg.service(static_files::static_files);
    -    cfg.service(static_files::favicons);
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/static_assets/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6pub mod filemap;
    +7pub mod static_files;
    +8
    +9pub use filemap::FileMap;
    +10
    +11pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    +12    cfg.service(static_files::static_files);
    +13    cfg.service(static_files::favicons);
    +14}
    \ 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 d37c1e8b..19c07c81 100644 --- a/src/mcaptcha/static_assets/static_files.rs.html +++ b/src/mcaptcha/static_assets/static_files.rs.html @@ -1,317 +1,157 @@ -static_files.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use std::borrow::Cow;
    -
    -use actix_web::body::BoxBody;
    -use actix_web::{get, http::header, web, HttpResponse, Responder};
    -use log::debug;
    -use mime_guess::from_path;
    -use rust_embed::RustEmbed;
    -
    -use crate::CACHE_AGE;
    -
    -pub mod assets {
    -    use lazy_static::lazy_static;
    -
    -    use crate::FILES;
    -
    -    type Img = (&'static str, &'static str);
    -
    -    lazy_static! {
    -        pub static ref KEY: Img =
    -            (FILES.get("./static/cache/img/svg/key.svg").unwrap(), "key");
    -        pub static ref GITHUB: Img = (
    -            FILES.get("./static/cache/img/svg/github.svg").unwrap(),
    -            "Source code"
    -        );
    -        pub static ref HOME: Img = (
    -            FILES.get("./static/cache/img/svg/home.svg").unwrap(),
    -            "Home"
    -        );
    -        pub static ref SETTINGS_ICON: Img = (
    -            FILES.get("./static/cache/img/svg/settings.svg").unwrap(),
    -            "Settings"
    -        );
    -        pub static ref CREDIT_CARD: Img = (
    -            FILES.get("./static/cache/img/svg/credit-card.svg").unwrap(),
    -            "Payment"
    -        );
    -        pub static ref HELP_CIRCLE: Img = (
    -            FILES.get("./static/cache/img/svg/help-circle.svg").unwrap(),
    -            "Help"
    -        );
    -        pub static ref MESSAGE: Img = (
    -            FILES
    -                .get("./static/cache/img/svg/message-square.svg")
    -                .unwrap(),
    -            "Message"
    -        );
    -        pub static ref DOCS_ICON: Img = (
    -            FILES.get("./static/cache/img/svg/file-text.svg").unwrap(),
    -            "Documentation"
    -        );
    -        pub static ref MCAPTCHA_TRANS_ICON: Img = (
    -            FILES.get("./static/cache/img/icon-trans.png").unwrap(),
    -            "Logo"
    -        );
    -        pub static ref BAR_CHART: Img = (
    -            FILES.get("./static/cache/img/svg/bar-chart.svg").unwrap(),
    -            "Statistics"
    -        );
    -    }
    -}
    -
    -#[derive(RustEmbed)]
    -#[folder = "assets/"]
    -struct Asset;
    -
    -fn handle_assets(path: &str) -> HttpResponse {
    -    match Asset::get(path) {
    -        Some(content) => {
    -            let body: BoxBody = match content.data {
    -                Cow::Borrowed(bytes) => BoxBody::new(bytes),
    -                Cow::Owned(bytes) => BoxBody::new(bytes),
    -            };
    -
    -            HttpResponse::Ok()
    -                .insert_header(header::CacheControl(vec![
    -                    header::CacheDirective::Public,
    -                    header::CacheDirective::Extension("immutable".into(), None),
    -                    header::CacheDirective::MaxAge(CACHE_AGE),
    -                ]))
    -                .content_type(from_path(path).first_or_octet_stream().as_ref())
    -                .body(body)
    -        }
    -        None => HttpResponse::NotFound().body("404 Not Found"),
    -    }
    -}
    -
    -#[get("/assets/{_:.*}")]
    -pub async fn static_files(path: web::Path<String>) -> impl Responder {
    -    handle_assets(&path)
    -}
    -
    -#[derive(RustEmbed)]
    -#[folder = "static/favicons/"]
    -struct Favicons;
    -
    -fn handle_favicons(path: &str) -> HttpResponse {
    -    match Favicons::get(path) {
    -        Some(content) => {
    -            let body: BoxBody = match content.data {
    -                Cow::Borrowed(bytes) => BoxBody::new(bytes),
    -                Cow::Owned(bytes) => BoxBody::new(bytes),
    -            };
    -
    -            HttpResponse::Ok()
    -                .insert_header(header::CacheControl(vec![
    -                    header::CacheDirective::Public,
    -                    header::CacheDirective::Extension("immutable".into(), None),
    -                    header::CacheDirective::MaxAge(CACHE_AGE),
    -                ]))
    -                .content_type(from_path(path).first_or_octet_stream().as_ref())
    -                .body(body)
    -        }
    -        None => HttpResponse::NotFound().body("404 Not Found"),
    -    }
    -}
    -
    -#[get("/{file}")]
    -pub async fn favicons(path: web::Path<String>) -> impl Responder {
    -    debug!("searching favicons");
    -    handle_favicons(&path)
    -}
    -
    -#[cfg(test)]
    -mod tests {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn static_assets_work() {
    -        let app = get_app!().await;
    -
    -        let urls = [
    -            *crate::JS,
    -            *crate::VERIFICATIN_WIDGET_JS,
    -            *crate::VERIFICATIN_WIDGET_CSS,
    -            crate::FILES
    -                .get("./static/cache/img/icon-trans.png")
    -                .unwrap(),
    -            "/favicon.ico",
    -        ];
    -
    -        for u in urls.iter() {
    -            println!("[*] Testing static asset at URL: {u}");
    -            let resp =
    -                test::call_service(&app, test::TestRequest::get().uri(u).to_request())
    -                    .await;
    -            assert_eq!(resp.status(), StatusCode::OK);
    -        }
    -    }
    -}
    -
    \ No newline at end of file +static_files.rs - source

    mcaptcha/static_assets/
    static_files.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use std::borrow::Cow;
    +7
    +8use actix_web::body::BoxBody;
    +9use actix_web::{get, http::header, web, HttpResponse, Responder};
    +10use log::debug;
    +11use mime_guess::from_path;
    +12use rust_embed::RustEmbed;
    +13
    +14use crate::CACHE_AGE;
    +15
    +16pub mod assets {
    +17    use lazy_static::lazy_static;
    +18
    +19    use crate::FILES;
    +20
    +21    type Img = (&'static str, &'static str);
    +22
    +23    lazy_static! {
    +24        pub static ref KEY: Img =
    +25            (FILES.get("./static/cache/img/svg/key.svg").unwrap(), "key");
    +26        pub static ref GITHUB: Img = (
    +27            FILES.get("./static/cache/img/svg/github.svg").unwrap(),
    +28            "Source code"
    +29        );
    +30        pub static ref HOME: Img = (
    +31            FILES.get("./static/cache/img/svg/home.svg").unwrap(),
    +32            "Home"
    +33        );
    +34        pub static ref SETTINGS_ICON: Img = (
    +35            FILES.get("./static/cache/img/svg/settings.svg").unwrap(),
    +36            "Settings"
    +37        );
    +38        pub static ref CREDIT_CARD: Img = (
    +39            FILES.get("./static/cache/img/svg/credit-card.svg").unwrap(),
    +40            "Payment"
    +41        );
    +42        pub static ref HELP_CIRCLE: Img = (
    +43            FILES.get("./static/cache/img/svg/help-circle.svg").unwrap(),
    +44            "Help"
    +45        );
    +46        pub static ref MESSAGE: Img = (
    +47            FILES
    +48                .get("./static/cache/img/svg/message-square.svg")
    +49                .unwrap(),
    +50            "Message"
    +51        );
    +52        pub static ref DOCS_ICON: Img = (
    +53            FILES.get("./static/cache/img/svg/file-text.svg").unwrap(),
    +54            "Documentation"
    +55        );
    +56        pub static ref MCAPTCHA_TRANS_ICON: Img = (
    +57            FILES.get("./static/cache/img/icon-trans.png").unwrap(),
    +58            "Logo"
    +59        );
    +60        pub static ref BAR_CHART: Img = (
    +61            FILES.get("./static/cache/img/svg/bar-chart.svg").unwrap(),
    +62            "Statistics"
    +63        );
    +64    }
    +65}
    +66
    +67#[derive(RustEmbed)]
    +68#[folder = "assets/"]
    +69struct Asset;
    +70
    +71fn handle_assets(path: &str) -> HttpResponse {
    +72    match Asset::get(path) {
    +73        Some(content) => {
    +74            let body: BoxBody = match content.data {
    +75                Cow::Borrowed(bytes) => BoxBody::new(bytes),
    +76                Cow::Owned(bytes) => BoxBody::new(bytes),
    +77            };
    +78
    +79            HttpResponse::Ok()
    +80                .insert_header(header::CacheControl(vec![
    +81                    header::CacheDirective::Public,
    +82                    header::CacheDirective::Extension("immutable".into(), None),
    +83                    header::CacheDirective::MaxAge(CACHE_AGE),
    +84                ]))
    +85                .content_type(from_path(path).first_or_octet_stream().as_ref())
    +86                .body(body)
    +87        }
    +88        None => HttpResponse::NotFound().body("404 Not Found"),
    +89    }
    +90}
    +91
    +92#[get("/assets/{_:.*}")]
    +93pub async fn static_files(path: web::Path<String>) -> impl Responder {
    +94    handle_assets(&path)
    +95}
    +96
    +97#[derive(RustEmbed)]
    +98#[folder = "static/favicons/"]
    +99struct Favicons;
    +100
    +101fn handle_favicons(path: &str) -> HttpResponse {
    +102    match Favicons::get(path) {
    +103        Some(content) => {
    +104            let body: BoxBody = match content.data {
    +105                Cow::Borrowed(bytes) => BoxBody::new(bytes),
    +106                Cow::Owned(bytes) => BoxBody::new(bytes),
    +107            };
    +108
    +109            HttpResponse::Ok()
    +110                .insert_header(header::CacheControl(vec![
    +111                    header::CacheDirective::Public,
    +112                    header::CacheDirective::Extension("immutable".into(), None),
    +113                    header::CacheDirective::MaxAge(CACHE_AGE),
    +114                ]))
    +115                .content_type(from_path(path).first_or_octet_stream().as_ref())
    +116                .body(body)
    +117        }
    +118        None => HttpResponse::NotFound().body("404 Not Found"),
    +119    }
    +120}
    +121
    +122#[get("/{file}")]
    +123pub async fn favicons(path: web::Path<String>) -> impl Responder {
    +124    debug!("searching favicons");
    +125    handle_favicons(&path)
    +126}
    +127
    +128#[cfg(test)]
    +129mod tests {
    +130    use actix_web::http::StatusCode;
    +131    use actix_web::test;
    +132
    +133    use crate::*;
    +134
    +135    #[actix_rt::test]
    +136    async fn static_assets_work() {
    +137        let app = get_app!().await;
    +138
    +139        let urls = [
    +140            *crate::JS,
    +141            *crate::VERIFICATIN_WIDGET_JS,
    +142            *crate::VERIFICATIN_WIDGET_CSS,
    +143            crate::FILES
    +144                .get("./static/cache/img/icon-trans.png")
    +145                .unwrap(),
    +146            "/favicon.ico",
    +147        ];
    +148
    +149        for u in urls.iter() {
    +150            println!("[*] Testing static asset at URL: {u}");
    +151            let resp =
    +152                test::call_service(&app, test::TestRequest::get().uri(u).to_request())
    +153                    .await;
    +154            assert_eq!(resp.status(), StatusCode::OK);
    +155        }
    +156    }
    +157}
    \ No newline at end of file diff --git a/src/mcaptcha/stats.rs.html b/src/mcaptcha/stats.rs.html index 106b1069..6a750f66 100644 --- a/src/mcaptcha/stats.rs.html +++ b/src/mcaptcha/stats.rs.html @@ -1,241 +1,119 @@ -stats.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -use async_trait::async_trait;
    -use db_core::errors::DBResult;
    -use serde::{Deserialize, Serialize};
    -
    -use crate::data::Data;
    -
    -#[async_trait]
    -pub trait Stats: std::marker::Send + std::marker::Sync + CloneStats {
    -    /// record PoWConfig fetches
    -    async fn record_fetch(&self, d: &Data, key: &str) -> DBResult<()>;
    -
    -    /// record PoWConfig solves
    -    async fn record_solve(&self, d: &Data, key: &str) -> DBResult<()>;
    -
    -    /// record PoWConfig confirms
    -    async fn record_confirm(&self, d: &Data, key: &str) -> DBResult<()>;
    -
    -    /// fetch stats
    -    async fn fetch(&self, d: &Data, user: &str, key: &str) -> DBResult<CaptchaStats>;
    -}
    -
    -/// Trait to clone MCDatabase
    -pub trait CloneStats {
    -    /// clone DB
    -    fn clone_stats(&self) -> Box<dyn Stats>;
    -}
    -
    -impl<T> CloneStats for T
    -where
    -    T: Stats + Clone + 'static,
    -{
    -    fn clone_stats(&self) -> Box<dyn Stats> {
    -        Box::new(self.clone())
    -    }
    -}
    -
    -//impl Clone for Box<dyn CloneStats> {
    -//    fn clone(&self) -> Self {
    -//        Box::clone(self)
    -//        //(*self).clone_stats()
    -//    }
    -//}
    -
    -#[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
    -pub struct CaptchaStats {
    -    pub config_fetches: Vec<i64>,
    -    pub solves: Vec<i64>,
    -    pub confirms: Vec<i64>,
    -}
    -
    -#[derive(Clone, Default, PartialEq, Debug)]
    -pub struct Real;
    -
    -#[async_trait]
    -impl Stats for Real {
    -    /// record PoWConfig fetches
    -    async fn record_fetch(&self, d: &Data, key: &str) -> DBResult<()> {
    -        d.db.record_fetch(key).await
    -    }
    -
    -    /// record PoWConfig solves
    -    async fn record_solve(&self, d: &Data, key: &str) -> DBResult<()> {
    -        d.db.record_solve(key).await
    -    }
    -
    -    /// record PoWConfig confirms
    -    async fn record_confirm(&self, d: &Data, key: &str) -> DBResult<()> {
    -        d.db.record_confirm(key).await
    -    }
    -
    -    /// fetch stats
    -    async fn fetch(&self, d: &Data, user: &str, key: &str) -> DBResult<CaptchaStats> {
    -        let config_fetches_fut = d.db.fetch_config_fetched(user, key);
    -        let solves_fut = d.db.fetch_solve(user, key);
    -        let confirms_fut = d.db.fetch_confirm(user, key);
    -
    -        let (config_fetches, solves, confirms) =
    -            futures::try_join!(config_fetches_fut, solves_fut, confirms_fut)?;
    -
    -        let res = CaptchaStats {
    -            config_fetches,
    -            solves,
    -            confirms,
    -        };
    -
    -        Ok(res)
    -    }
    -}
    -
    -#[derive(Clone, Default, PartialEq, Debug)]
    -pub struct Dummy;
    -
    -#[async_trait]
    -impl Stats for Dummy {
    -    /// record PoWConfig fetches
    -    async fn record_fetch(&self, _: &Data, _: &str) -> DBResult<()> {
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig solves
    -    async fn record_solve(&self, _: &Data, _: &str) -> DBResult<()> {
    -        Ok(())
    -    }
    -
    -    /// record PoWConfig confirms
    -    async fn record_confirm(&self, _: &Data, _: &str) -> DBResult<()> {
    -        Ok(())
    -    }
    -
    -    /// fetch stats
    -    async fn fetch(&self, _: &Data, _: &str, _: &str) -> DBResult<CaptchaStats> {
    -        Ok(CaptchaStats::default())
    -    }
    -}
    -
    \ No newline at end of file +stats.rs - source

    mcaptcha/
    stats.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6use async_trait::async_trait;
    +7use db_core::errors::DBResult;
    +8use serde::{Deserialize, Serialize};
    +9
    +10use crate::data::Data;
    +11
    +12#[async_trait]
    +13pub trait Stats: std::marker::Send + std::marker::Sync + CloneStats {
    +14    /// record PoWConfig fetches
    +15    async fn record_fetch(&self, d: &Data, key: &str) -> DBResult<()>;
    +16
    +17    /// record PoWConfig solves
    +18    async fn record_solve(&self, d: &Data, key: &str) -> DBResult<()>;
    +19
    +20    /// record PoWConfig confirms
    +21    async fn record_confirm(&self, d: &Data, key: &str) -> DBResult<()>;
    +22
    +23    /// fetch stats
    +24    async fn fetch(&self, d: &Data, user: &str, key: &str) -> DBResult<CaptchaStats>;
    +25}
    +26
    +27/// Trait to clone MCDatabase
    +28pub trait CloneStats {
    +29    /// clone DB
    +30    fn clone_stats(&self) -> Box<dyn Stats>;
    +31}
    +32
    +33impl<T> CloneStats for T
    +34where
    +35    T: Stats + Clone + 'static,
    +36{
    +37    fn clone_stats(&self) -> Box<dyn Stats> {
    +38        Box::new(self.clone())
    +39    }
    +40}
    +41
    +42//impl Clone for Box<dyn CloneStats> {
    +43//    fn clone(&self) -> Self {
    +44//        Box::clone(self)
    +45//        //(*self).clone_stats()
    +46//    }
    +47//}
    +48
    +49#[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
    +50pub struct CaptchaStats {
    +51    pub config_fetches: Vec<i64>,
    +52    pub solves: Vec<i64>,
    +53    pub confirms: Vec<i64>,
    +54}
    +55
    +56#[derive(Clone, Default, PartialEq, Debug)]
    +57pub struct Real;
    +58
    +59#[async_trait]
    +60impl Stats for Real {
    +61    /// record PoWConfig fetches
    +62    async fn record_fetch(&self, d: &Data, key: &str) -> DBResult<()> {
    +63        d.db.record_fetch(key).await
    +64    }
    +65
    +66    /// record PoWConfig solves
    +67    async fn record_solve(&self, d: &Data, key: &str) -> DBResult<()> {
    +68        d.db.record_solve(key).await
    +69    }
    +70
    +71    /// record PoWConfig confirms
    +72    async fn record_confirm(&self, d: &Data, key: &str) -> DBResult<()> {
    +73        d.db.record_confirm(key).await
    +74    }
    +75
    +76    /// fetch stats
    +77    async fn fetch(&self, d: &Data, user: &str, key: &str) -> DBResult<CaptchaStats> {
    +78        let config_fetches_fut = d.db.fetch_config_fetched(user, key);
    +79        let solves_fut = d.db.fetch_solve(user, key);
    +80        let confirms_fut = d.db.fetch_confirm(user, key);
    +81
    +82        let (config_fetches, solves, confirms) =
    +83            futures::try_join!(config_fetches_fut, solves_fut, confirms_fut)?;
    +84
    +85        let res = CaptchaStats {
    +86            config_fetches,
    +87            solves,
    +88            confirms,
    +89        };
    +90
    +91        Ok(res)
    +92    }
    +93}
    +94
    +95#[derive(Clone, Default, PartialEq, Debug)]
    +96pub struct Dummy;
    +97
    +98#[async_trait]
    +99impl Stats for Dummy {
    +100    /// record PoWConfig fetches
    +101    async fn record_fetch(&self, _: &Data, _: &str) -> DBResult<()> {
    +102        Ok(())
    +103    }
    +104
    +105    /// record PoWConfig solves
    +106    async fn record_solve(&self, _: &Data, _: &str) -> DBResult<()> {
    +107        Ok(())
    +108    }
    +109
    +110    /// record PoWConfig confirms
    +111    async fn record_confirm(&self, _: &Data, _: &str) -> DBResult<()> {
    +112        Ok(())
    +113    }
    +114
    +115    /// fetch stats
    +116    async fn fetch(&self, _: &Data, _: &str, _: &str) -> DBResult<CaptchaStats> {
    +117        Ok(CaptchaStats::default())
    +118    }
    +119}
    \ No newline at end of file diff --git a/src/mcaptcha/survey.rs.html b/src/mcaptcha/survey.rs.html index 92cc9f28..b8307f3e 100644 --- a/src/mcaptcha/survey.rs.html +++ b/src/mcaptcha/survey.rs.html @@ -1,421 +1,209 @@ -survey.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -use std::collections::HashMap;
    -use std::sync::Arc;
    -use std::sync::RwLock;
    -use std::time::Duration;
    -
    -use reqwest::Client;
    -use serde::{Deserialize, Serialize};
    -use tokio::sync::oneshot;
    -use tokio::task::JoinHandle;
    -use tokio::time::sleep;
    -
    -use crate::errors::*;
    -use crate::settings::Settings;
    -use crate::AppData;
    -use crate::V1_API_ROUTES;
    -
    -#[async_trait::async_trait]
    -pub trait SurveyClientTrait {
    -    async fn start_job(&self) -> ServiceResult<(oneshot::Sender<()>, JoinHandle<()>)>;
    -    async fn schedule_upload_job(&self) -> ServiceResult<()>;
    -    async fn is_online(&self) -> ServiceResult<bool>;
    -    async fn register(&self) -> ServiceResult<()>;
    -}
    -
    -#[derive(Clone, Debug, Default)]
    -pub struct SecretsStore {
    -    store: Arc<RwLock<HashMap<String, String>>>,
    -}
    -
    -impl SecretsStore {
    -    pub fn get(&self, key: &str) -> Option<String> {
    -        let r = self.store.read().unwrap();
    -        r.get(key).map(|x| x.to_owned())
    -    }
    -
    -    pub fn rm(&self, key: &str) {
    -        let mut w = self.store.write().unwrap();
    -        w.remove(key);
    -        drop(w);
    -    }
    -
    -    pub fn set(&self, key: String, value: String) {
    -        let mut w = self.store.write().unwrap();
    -        w.insert(key, value);
    -        drop(w);
    -    }
    -}
    -
    -#[derive(Clone)]
    -pub struct Survey {
    -    client: Client,
    -    app_ctx: AppData,
    -}
    -impl Survey {
    -    pub fn new(app_ctx: AppData) -> Self {
    -        if app_ctx.settings.survey.is_none() {
    -            panic!("Survey uploader shouldn't be initialized it isn't configured, please report this bug")
    -        }
    -        Survey {
    -            client: Client::new(),
    -            app_ctx,
    -        }
    -    }
    -}
    -
    -#[async_trait::async_trait]
    -impl SurveyClientTrait for Survey {
    -    async fn start_job(&self) -> ServiceResult<(oneshot::Sender<()>, JoinHandle<()>)> {
    -        fn can_run(rx: &mut oneshot::Receiver<()>) -> bool {
    -            match rx.try_recv() {
    -                Err(oneshot::error::TryRecvError::Empty) => true,
    -                _ => false,
    -            }
    -        }
    -
    -        let (tx, mut rx) = oneshot::channel();
    -        let this = self.clone();
    -        let mut register = false;
    -        let fut = async move {
    -            loop {
    -                if !can_run(&mut rx) {
    -                    log::info!("Stopping survey uploads");
    -                    break;
    -                }
    -
    -                if !register {
    -                    loop {
    -                        if this.is_online().await.unwrap() {
    -                            this.register().await.unwrap();
    -                            register = true;
    -                            break;
    -                        } else {
    -                            sleep(Duration::new(1, 0)).await;
    -                        }
    -                    }
    -                }
    -
    -                for i in 0..this.app_ctx.settings.survey.as_ref().unwrap().rate_limit {
    -                    if !can_run(&mut rx) {
    -                        log::info!("Stopping survey uploads");
    -                        break;
    -                    }
    -                    sleep(Duration::new(1, 0)).await;
    -                }
    -                let _ = this.schedule_upload_job().await;
    -
    -                // for url in this.app_ctx.settings.survey.as_ref().unwrap().nodes.iter() {
    -                //     if !can_run(&mut rx) {
    -                //         log::info!("Stopping survey uploads");
    -                //         break;
    -                //     }
    -                //     log::info!("Uploading to survey instance {}", url);
    -                // }
    -            }
    -        };
    -        let handle = tokio::spawn(fut);
    -        Ok((tx, handle))
    -    }
    -    async fn is_online(&self) -> ServiceResult<bool> {
    -        let res = self
    -            .client
    -            .get(format!(
    -                "http://{}{}",
    -                self.app_ctx.settings.server.get_ip(),
    -                V1_API_ROUTES.meta.health
    -            ))
    -            .send()
    -            .await
    -            .unwrap();
    -        Ok(res.status() == 200)
    -    }
    -
    -    async fn schedule_upload_job(&self) -> ServiceResult<()> {
    -        log::debug!("Running upload job");
    -        #[derive(Serialize)]
    -        struct Secret {
    -            secret: String,
    -        }
    -        let mut page = 0;
    -        loop {
    -            let psuedo_ids = self.app_ctx.db.analytics_get_all_psuedo_ids(page).await?;
    -            if psuedo_ids.is_empty() {
    -                log::debug!("upload job complete, no more IDs to upload");
    -                break;
    -            }
    -            for id in psuedo_ids {
    -                for url in self.app_ctx.settings.survey.as_ref().unwrap().nodes.iter() {
    -                    if let Some(secret) = self.app_ctx.survey_secrets.get(url.as_str()) {
    -                        let payload = Secret { secret };
    -
    -                        log::info!("Uploading to survey instance {} campaign {id}", url);
    -                        let mut url = url.clone();
    -                        url.set_path(&format!("/mcaptcha/api/v1/{id}/upload"));
    -                        let resp =
    -                            self.client.post(url).json(&payload).send().await.unwrap();
    -                        println!("{}", resp.text().await.unwrap());
    -                    }
    -                }
    -            }
    -            page += 1;
    -        }
    -        Ok(())
    -    }
    -
    -    async fn register(&self) -> ServiceResult<()> {
    -        #[derive(Serialize)]
    -        struct MCaptchaInstance {
    -            url: url::Url,
    -            auth_token: String,
    -        }
    -
    -        let this_instance_url = self
    -            .app_ctx
    -            .settings
    -            .survey
    -            .as_ref()
    -            .unwrap()
    -            .instance_root_url
    -            .clone();
    -        for url in self.app_ctx.settings.survey.as_ref().unwrap().nodes.iter() {
    -            // mCaptcha/survey must send this token while uploading secret to authenticate itself
    -            // this token must be sent to mCaptcha/survey with the registration payload
    -            let secret_upload_auth_token = crate::api::v1::mcaptcha::get_random(20);
    -
    -            let payload = MCaptchaInstance {
    -                url: this_instance_url.clone(),
    -                auth_token: secret_upload_auth_token.clone(),
    -            };
    -
    -            // SecretsStore will store auth tokens generated by both mCaptcha/mCaptcha and
    -            // mCaptcha/survey
    -            //
    -            // Storage schema:
    -            // - mCaptcha/mCaptcha generated auth token: (<auth_token>, <survey_instance_url>)
    -            // - mCaptcha/survey generated auth token (<survey_instance_url>, <auth_token)
    -            self.app_ctx
    -                .survey_secrets
    -                .set(secret_upload_auth_token, url.to_string());
    -            let mut url = url.clone();
    -            url.set_path("/mcaptcha/api/v1/register");
    -            let resp = self.client.post(url).json(&payload).send().await.unwrap();
    -        }
    -        Ok(())
    -    }
    -}
    -
    \ No newline at end of file +survey.rs - source

    mcaptcha/
    survey.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5use std::collections::HashMap;
    +6use std::sync::Arc;
    +7use std::sync::RwLock;
    +8use std::time::Duration;
    +9
    +10use reqwest::Client;
    +11use serde::{Deserialize, Serialize};
    +12use tokio::sync::oneshot;
    +13use tokio::task::JoinHandle;
    +14use tokio::time::sleep;
    +15
    +16use crate::errors::*;
    +17use crate::settings::Settings;
    +18use crate::AppData;
    +19use crate::V1_API_ROUTES;
    +20
    +21#[async_trait::async_trait]
    +22pub trait SurveyClientTrait {
    +23    async fn start_job(&self) -> ServiceResult<(oneshot::Sender<()>, JoinHandle<()>)>;
    +24    async fn schedule_upload_job(&self) -> ServiceResult<()>;
    +25    async fn is_online(&self) -> ServiceResult<bool>;
    +26    async fn register(&self) -> ServiceResult<()>;
    +27}
    +28
    +29#[derive(Clone, Debug, Default)]
    +30pub struct SecretsStore {
    +31    store: Arc<RwLock<HashMap<String, String>>>,
    +32}
    +33
    +34impl SecretsStore {
    +35    pub fn get(&self, key: &str) -> Option<String> {
    +36        let r = self.store.read().unwrap();
    +37        r.get(key).map(|x| x.to_owned())
    +38    }
    +39
    +40    pub fn rm(&self, key: &str) {
    +41        let mut w = self.store.write().unwrap();
    +42        w.remove(key);
    +43        drop(w);
    +44    }
    +45
    +46    pub fn set(&self, key: String, value: String) {
    +47        let mut w = self.store.write().unwrap();
    +48        w.insert(key, value);
    +49        drop(w);
    +50    }
    +51}
    +52
    +53#[derive(Clone)]
    +54pub struct Survey {
    +55    client: Client,
    +56    app_ctx: AppData,
    +57}
    +58impl Survey {
    +59    pub fn new(app_ctx: AppData) -> Self {
    +60        if app_ctx.settings.survey.is_none() {
    +61            panic!("Survey uploader shouldn't be initialized it isn't configured, please report this bug")
    +62        }
    +63        Survey {
    +64            client: Client::new(),
    +65            app_ctx,
    +66        }
    +67    }
    +68}
    +69
    +70#[async_trait::async_trait]
    +71impl SurveyClientTrait for Survey {
    +72    async fn start_job(&self) -> ServiceResult<(oneshot::Sender<()>, JoinHandle<()>)> {
    +73        fn can_run(rx: &mut oneshot::Receiver<()>) -> bool {
    +74            match rx.try_recv() {
    +75                Err(oneshot::error::TryRecvError::Empty) => true,
    +76                _ => false,
    +77            }
    +78        }
    +79
    +80        let (tx, mut rx) = oneshot::channel();
    +81        let this = self.clone();
    +82        let mut register = false;
    +83        let fut = async move {
    +84            loop {
    +85                if !can_run(&mut rx) {
    +86                    log::info!("Stopping survey uploads");
    +87                    break;
    +88                }
    +89
    +90                if !register {
    +91                    loop {
    +92                        if this.is_online().await.unwrap() {
    +93                            this.register().await.unwrap();
    +94                            register = true;
    +95                            break;
    +96                        } else {
    +97                            sleep(Duration::new(1, 0)).await;
    +98                        }
    +99                    }
    +100                }
    +101
    +102                for i in 0..this.app_ctx.settings.survey.as_ref().unwrap().rate_limit {
    +103                    if !can_run(&mut rx) {
    +104                        log::info!("Stopping survey uploads");
    +105                        break;
    +106                    }
    +107                    sleep(Duration::new(1, 0)).await;
    +108                }
    +109                let _ = this.schedule_upload_job().await;
    +110
    +111                // for url in this.app_ctx.settings.survey.as_ref().unwrap().nodes.iter() {
    +112                //     if !can_run(&mut rx) {
    +113                //         log::info!("Stopping survey uploads");
    +114                //         break;
    +115                //     }
    +116                //     log::info!("Uploading to survey instance {}", url);
    +117                // }
    +118            }
    +119        };
    +120        let handle = tokio::spawn(fut);
    +121        Ok((tx, handle))
    +122    }
    +123    async fn is_online(&self) -> ServiceResult<bool> {
    +124        let res = self
    +125            .client
    +126            .get(format!(
    +127                "http://{}{}",
    +128                self.app_ctx.settings.server.get_ip(),
    +129                V1_API_ROUTES.meta.health
    +130            ))
    +131            .send()
    +132            .await
    +133            .unwrap();
    +134        Ok(res.status() == 200)
    +135    }
    +136
    +137    async fn schedule_upload_job(&self) -> ServiceResult<()> {
    +138        log::debug!("Running upload job");
    +139        #[derive(Serialize)]
    +140        struct Secret {
    +141            secret: String,
    +142        }
    +143        let mut page = 0;
    +144        loop {
    +145            let psuedo_ids = self.app_ctx.db.analytics_get_all_psuedo_ids(page).await?;
    +146            if psuedo_ids.is_empty() {
    +147                log::debug!("upload job complete, no more IDs to upload");
    +148                break;
    +149            }
    +150            for id in psuedo_ids {
    +151                for url in self.app_ctx.settings.survey.as_ref().unwrap().nodes.iter() {
    +152                    if let Some(secret) = self.app_ctx.survey_secrets.get(url.as_str()) {
    +153                        let payload = Secret { secret };
    +154
    +155                        log::info!("Uploading to survey instance {} campaign {id}", url);
    +156                        let mut url = url.clone();
    +157                        url.set_path(&format!("/mcaptcha/api/v1/{id}/upload"));
    +158                        let resp =
    +159                            self.client.post(url).json(&payload).send().await.unwrap();
    +160                        println!("{}", resp.text().await.unwrap());
    +161                    }
    +162                }
    +163            }
    +164            page += 1;
    +165        }
    +166        Ok(())
    +167    }
    +168
    +169    async fn register(&self) -> ServiceResult<()> {
    +170        #[derive(Serialize)]
    +171        struct MCaptchaInstance {
    +172            url: url::Url,
    +173            auth_token: String,
    +174        }
    +175
    +176        let this_instance_url = self
    +177            .app_ctx
    +178            .settings
    +179            .survey
    +180            .as_ref()
    +181            .unwrap()
    +182            .instance_root_url
    +183            .clone();
    +184        for url in self.app_ctx.settings.survey.as_ref().unwrap().nodes.iter() {
    +185            // mCaptcha/survey must send this token while uploading secret to authenticate itself
    +186            // this token must be sent to mCaptcha/survey with the registration payload
    +187            let secret_upload_auth_token = crate::api::v1::mcaptcha::get_random(20);
    +188
    +189            let payload = MCaptchaInstance {
    +190                url: this_instance_url.clone(),
    +191                auth_token: secret_upload_auth_token.clone(),
    +192            };
    +193
    +194            // SecretsStore will store auth tokens generated by both mCaptcha/mCaptcha and
    +195            // mCaptcha/survey
    +196            //
    +197            // Storage schema:
    +198            // - mCaptcha/mCaptcha generated auth token: (<auth_token>, <survey_instance_url>)
    +199            // - mCaptcha/survey generated auth token (<survey_instance_url>, <auth_token)
    +200            self.app_ctx
    +201                .survey_secrets
    +202                .set(secret_upload_auth_token, url.to_string());
    +203            let mut url = url.clone();
    +204            url.set_path("/mcaptcha/api/v1/register");
    +205            let resp = self.client.post(url).json(&payload).send().await.unwrap();
    +206        }
    +207        Ok(())
    +208    }
    +209}
    \ No newline at end of file diff --git a/src/mcaptcha/widget/mod.rs.html b/src/mcaptcha/widget/mod.rs.html index 1f010030..116a5aa2 100644 --- a/src/mcaptcha/widget/mod.rs.html +++ b/src/mcaptcha/widget/mod.rs.html @@ -1,143 +1,70 @@ -mod.rs - source -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -
    // Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    -// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    -//
    -// SPDX-License-Identifier: AGPL-3.0-or-later
    -
    -//! User facing CAPTCHA widget
    -use actix_web::{web, HttpResponse, Responder};
    -use lazy_static::lazy_static;
    -use sailfish::TemplateOnce;
    -
    -use crate::errors::*;
    -
    -pub const WIDGET_ROUTES: routes::Widget = routes::Widget::new();
    -
    -pub mod routes {
    -    pub struct Widget {
    -        pub verification_widget: &'static str,
    -    }
    -
    -    impl Widget {
    -        pub const fn new() -> Self {
    -            Widget {
    -                verification_widget: "/widget",
    -            }
    -        }
    -    }
    -}
    -
    -#[derive(TemplateOnce, Clone)]
    -#[template(path = "widget/index.html")]
    -pub struct IndexPage;
    -
    -const PAGE: &str = "mCaptcha CAPTCHA verification";
    -
    -impl IndexPage {
    -    fn new() -> Self {
    -        IndexPage {}
    -    }
    -}
    -
    -lazy_static! {
    -    static ref INDEX_PAGE: String = IndexPage::new().render_once().unwrap();
    -}
    -
    -/// render a client side widget for CAPTCHA verification
    -#[my_codegen::get(path = "crate::WIDGET_ROUTES.verification_widget")] //, wrap = "crate::CheckLogin")]
    -async fn show_widget() -> PageResult<impl Responder> {
    -    Ok(HttpResponse::Ok()
    -        .content_type("text/html; charset=utf-8")
    -        .body(&**INDEX_PAGE))
    -}
    -
    -/// widget services
    -pub fn services(cfg: &mut web::ServiceConfig) {
    -    cfg.service(show_widget);
    -}
    -
    -#[cfg(test)]
    -mod test {
    -    use actix_web::http::StatusCode;
    -    use actix_web::test;
    -
    -    use crate::*;
    -
    -    #[actix_rt::test]
    -    async fn captcha_widget_route_works() {
    -        let app = get_app!().await;
    -        get_works!(app, crate::WIDGET_ROUTES.verification_widget);
    -    }
    -}
    -
    \ No newline at end of file +mod.rs - source

    mcaptcha/widget/
    mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    +2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    +3//
    +4// SPDX-License-Identifier: AGPL-3.0-or-later
    +5
    +6//! User facing CAPTCHA widget
    +7use actix_web::{web, HttpResponse, Responder};
    +8use lazy_static::lazy_static;
    +9use sailfish::TemplateOnce;
    +10
    +11use crate::errors::*;
    +12
    +13pub const WIDGET_ROUTES: routes::Widget = routes::Widget::new();
    +14
    +15pub mod routes {
    +16    pub struct Widget {
    +17        pub verification_widget: &'static str,
    +18    }
    +19
    +20    impl Widget {
    +21        pub const fn new() -> Self {
    +22            Widget {
    +23                verification_widget: "/widget",
    +24            }
    +25        }
    +26    }
    +27}
    +28
    +29#[derive(TemplateOnce, Clone)]
    +30#[template(path = "widget/index.html")]
    +31pub struct IndexPage;
    +32
    +33const PAGE: &str = "mCaptcha CAPTCHA verification";
    +34
    +35impl IndexPage {
    +36    fn new() -> Self {
    +37        IndexPage {}
    +38    }
    +39}
    +40
    +41lazy_static! {
    +42    static ref INDEX_PAGE: String = IndexPage::new().render_once().unwrap();
    +43}
    +44
    +45/// render a client side widget for CAPTCHA verification
    +46#[my_codegen::get(path = "crate::WIDGET_ROUTES.verification_widget")] //, wrap = "crate::CheckLogin")]
    +47async fn show_widget() -> PageResult<impl Responder> {
    +48    Ok(HttpResponse::Ok()
    +49        .content_type("text/html; charset=utf-8")
    +50        .body(&**INDEX_PAGE))
    +51}
    +52
    +53/// widget services
    +54pub fn services(cfg: &mut web::ServiceConfig) {
    +55    cfg.service(show_widget);
    +56}
    +57
    +58#[cfg(test)]
    +59mod test {
    +60    use actix_web::http::StatusCode;
    +61    use actix_web::test;
    +62
    +63    use crate::*;
    +64
    +65    #[actix_rt::test]
    +66    async fn captcha_widget_route_works() {
    +67        let app = get_app!().await;
    +68        get_works!(app, crate::WIDGET_ROUTES.verification_widget);
    +69    }
    +70}
    \ No newline at end of file diff --git a/static.files/COPYRIGHT-23e9bde6c69aea69.txt b/static.files/COPYRIGHT-7fb11f4e.txt similarity index 65% rename from static.files/COPYRIGHT-23e9bde6c69aea69.txt rename to static.files/COPYRIGHT-7fb11f4e.txt index 1447df79..752dab0a 100644 --- a/static.files/COPYRIGHT-23e9bde6c69aea69.txt +++ b/static.files/COPYRIGHT-7fb11f4e.txt @@ -36,7 +36,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-It.ttf.woff2, SourceSerif4-Semibold.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 @@ -45,6 +45,27 @@ included, and carry their own copyright notices and license terms: Licensed under the SIL Open Font License, Version 1.1. See SourceSerif4-LICENSE.md. +* Nanum Barun Gothic Font (NanumBarunGothic.woff2) + + Copyright 2010, NAVER Corporation (http://www.nhncorp.com) + with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, + NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, + Naver NanumPen, Naver NanumGothicEco, NanumGothicEco, + Naver NanumMyeongjoEco, NanumMyeongjoEco, Naver NanumGothicLight, + NanumGothicLight, NanumBarunGothic, Naver NanumBarunGothic. + + https://hangeul.naver.com/2017/nanum + https://github.com/hiun/NanumBarunGothic + + Licensed under the SIL Open Font License, Version 1.1. + See NanumBarunGothic-LICENSE.txt. + +* Rust logos (rust-logo.svg, favicon.svg, favicon-32x32.png) + + Copyright 2025 Rust Foundation. + Licensed under the Creative Commons Attribution license (CC-BY). + https://rustfoundation.org/policy/rust-trademark-policy/ + This copyright file is intended to be distributed with rustdoc output. # REUSE-IgnoreEnd diff --git a/static.files/FiraMono-Medium-86f75c8c.woff2 b/static.files/FiraMono-Medium-86f75c8c.woff2 new file mode 100644 index 00000000..610e9b20 Binary files /dev/null and b/static.files/FiraMono-Medium-86f75c8c.woff2 differ diff --git a/static.files/FiraMono-Regular-87c26294.woff2 b/static.files/FiraMono-Regular-87c26294.woff2 new file mode 100644 index 00000000..9fa44b7c Binary files /dev/null and b/static.files/FiraMono-Regular-87c26294.woff2 differ diff --git a/static.files/FiraSans-Italic-81dc35de.woff2 b/static.files/FiraSans-Italic-81dc35de.woff2 new file mode 100644 index 00000000..3f63664f Binary files /dev/null and b/static.files/FiraSans-Italic-81dc35de.woff2 differ diff --git a/static.files/FiraSans-LICENSE-db4b642586e02d97.txt b/static.files/FiraSans-LICENSE-05ab6dbd.txt similarity index 100% rename from static.files/FiraSans-LICENSE-db4b642586e02d97.txt rename to static.files/FiraSans-LICENSE-05ab6dbd.txt diff --git a/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 b/static.files/FiraSans-Medium-e1aa3f0a.woff2 similarity index 100% rename from static.files/FiraSans-Medium-8f9a781e4970d388.woff2 rename to static.files/FiraSans-Medium-e1aa3f0a.woff2 diff --git a/static.files/FiraSans-MediumItalic-ccf7e434.woff2 b/static.files/FiraSans-MediumItalic-ccf7e434.woff2 new file mode 100644 index 00000000..2d08f9f7 Binary files /dev/null and b/static.files/FiraSans-MediumItalic-ccf7e434.woff2 differ diff --git a/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 b/static.files/FiraSans-Regular-0fe48ade.woff2 similarity index 100% rename from static.files/FiraSans-Regular-018c141bf0843ffd.woff2 rename to static.files/FiraSans-Regular-0fe48ade.woff2 diff --git a/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt b/static.files/LICENSE-APACHE-a60eea81.txt similarity index 100% rename from static.files/LICENSE-APACHE-b91fa81cba47b86a.txt rename to static.files/LICENSE-APACHE-a60eea81.txt diff --git a/static.files/LICENSE-MIT-65090b722b3f6c56.txt b/static.files/LICENSE-MIT-23f18e03.txt similarity index 100% rename from static.files/LICENSE-MIT-65090b722b3f6c56.txt rename to static.files/LICENSE-MIT-23f18e03.txt diff --git a/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 b/static.files/NanumBarunGothic-13b3dcba.ttf.woff2 similarity index 100% rename from static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 rename to static.files/NanumBarunGothic-13b3dcba.ttf.woff2 diff --git a/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt b/static.files/NanumBarunGothic-LICENSE-a37d393b.txt similarity index 100% rename from static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt rename to static.files/NanumBarunGothic-LICENSE-a37d393b.txt diff --git a/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 b/static.files/SourceCodePro-It-fc8b9304.ttf.woff2 similarity index 100% rename from static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 rename to static.files/SourceCodePro-It-fc8b9304.ttf.woff2 diff --git a/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt b/static.files/SourceCodePro-LICENSE-67f54ca7.txt similarity index 100% rename from static.files/SourceCodePro-LICENSE-d180d465a756484a.txt rename to static.files/SourceCodePro-LICENSE-67f54ca7.txt diff --git a/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 b/static.files/SourceCodePro-Regular-8badfe75.ttf.woff2 similarity index 100% rename from static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 rename to static.files/SourceCodePro-Regular-8badfe75.ttf.woff2 diff --git a/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 b/static.files/SourceCodePro-Semibold-aa29a496.ttf.woff2 similarity index 100% rename from static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 rename to static.files/SourceCodePro-Semibold-aa29a496.ttf.woff2 diff --git a/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 b/static.files/SourceSerif4-Bold-6d4fd4c0.ttf.woff2 similarity index 100% rename from static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 rename to static.files/SourceSerif4-Bold-6d4fd4c0.ttf.woff2 diff --git a/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 b/static.files/SourceSerif4-It-ca3b17ed.ttf.woff2 similarity index 100% rename from static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 rename to static.files/SourceSerif4-It-ca3b17ed.ttf.woff2 diff --git a/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md b/static.files/SourceSerif4-LICENSE-a2cfd9d5.md similarity index 100% rename from static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md rename to static.files/SourceSerif4-LICENSE-a2cfd9d5.md diff --git a/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 b/static.files/SourceSerif4-Regular-6b053e98.ttf.woff2 similarity index 100% rename from static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 rename to static.files/SourceSerif4-Regular-6b053e98.ttf.woff2 diff --git a/static.files/SourceSerif4-Semibold-457a13ac.ttf.woff2 b/static.files/SourceSerif4-Semibold-457a13ac.ttf.woff2 new file mode 100644 index 00000000..dd55f4e9 Binary files /dev/null and b/static.files/SourceSerif4-Semibold-457a13ac.ttf.woff2 differ diff --git a/static.files/clipboard-7571035ce49a181d.svg b/static.files/clipboard-7571035ce49a181d.svg deleted file mode 100644 index 8adbd996..00000000 --- a/static.files/clipboard-7571035ce49a181d.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/static.files/favicon-2c020d218678b618.svg b/static.files/favicon-044be391.svg similarity index 100% rename from static.files/favicon-2c020d218678b618.svg rename to static.files/favicon-044be391.svg diff --git a/static.files/favicon-16x16-8b506e7a72182f1c.png b/static.files/favicon-16x16-8b506e7a72182f1c.png deleted file mode 100644 index ea4b45ca..00000000 Binary files a/static.files/favicon-16x16-8b506e7a72182f1c.png and /dev/null differ diff --git a/static.files/favicon-32x32-422f7d1d52889060.png b/static.files/favicon-32x32-6580c154.png similarity index 100% rename from static.files/favicon-32x32-422f7d1d52889060.png rename to static.files/favicon-32x32-6580c154.png diff --git a/static.files/main-48f368f3872407c8.js b/static.files/main-48f368f3872407c8.js deleted file mode 100644 index 987fae42..00000000 --- a/static.files/main-48f368f3872407c8.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;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 blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}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 MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}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 preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};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},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));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(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}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){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

    "+searchState.loadingText+"

    ";searchState.showResults(search)},};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()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();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 handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;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(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){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)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(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("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
    "+window.NOTABLE_TRAITS[notable_ty]+"
    "}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});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")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ -the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","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=[`For a full list of all search features, take a look here.`,"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 or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for functions that accept or return \ - slices and \ - arrays by writing \ - square brackets (e.g., -> [u8] or [] -> Option)","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;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);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px")},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}window.hideAllModals(false);e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{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/static.files/main-eebb9057.js b/static.files/main-eebb9057.js new file mode 100644 index 00000000..750010f4 --- /dev/null +++ b/static.files/main-eebb9057.js @@ -0,0 +1,11 @@ +"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension;}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden");const toggle=document.getElementById("toggle-all-docs");if(toggle){toggle.setAttribute("disabled","disabled");}}function showMain(){const main=document.getElementById(MAIN_ID);if(!main){return;}removeClass(main,"hidden");const mainHeading=main.querySelector(".main-heading");if(mainHeading&&window.searchState.rustdocToolbar){if(window.searchState.rustdocToolbar.parentElement){window.searchState.rustdocToolbar.parentElement.removeChild(window.searchState.rustdocToolbar,);}mainHeading.appendChild(window.searchState.rustdocToolbar);}const toggle=document.getElementById("toggle-all-docs");if(toggle){toggle.removeAttribute("disabled");}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerHTML=`Crate ${window.currentCrate}`;}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML;}mobileTopbar.appendChild(mobileTitle);}}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 MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID);}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID);}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0];}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");const mainHeading=elemToDisplay.querySelector(".main-heading");if(mainHeading&&window.searchState.rustdocToolbar){if(window.searchState.rustdocToolbar.parentElement){window.searchState.rustdocToolbar.parentElement.removeChild(window.searchState.rustdocToolbar,);}mainHeading.appendChild(window.searchState.rustdocToolbar);}}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function";}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link);}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback;}document.head.append(script);}const settingsButton=getSettingsButton();if(settingsButton){settingsButton.onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return;}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css");}}},0);};}window.searchState={rustdocToolbar:document.querySelector("rustdoc-toolbar"),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(window.searchState.timeout!==null){clearTimeout(window.searchState.timeout);window.searchState.timeout=null;}},isDisplayed:()=>{const outputElement=window.searchState.outputElement();return!!outputElement&&!!outputElement.parentElement&&outputElement.parentElement.id===ALTERNATIVE_DISPLAY_ID;},focus:()=>{window.searchState.input&&window.searchState.input.focus();},defocus:()=>{window.searchState.input&&window.searchState.input.blur();},showResults:search=>{if(search===null||typeof search==="undefined"){search=window.searchState.outputElement();}switchDisplayedElement(search);document.title=window.searchState.title;},removeQueryParameters:()=>{document.title=window.searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash);}},hideResults:()=>{switchDisplayedElement(null);window.searchState.removeQueryParameters();},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1]);});return params;},setup:()=>{const search_input=window.searchState.input;if(!search_input){return;}let searchLoaded=false;function sendSearchForm(){document.getElementsByClassName("search-form")[0].submit();}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm);}}search_input.addEventListener("focus",()=>{window.searchState.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch();});if(search_input.value!==""){loadSearch();}const params=window.searchState.getQueryStringParams();if(params.search!==undefined){window.searchState.setLoadingSearch();loadSearch();}},setLoadingSearch:()=>{const search=window.searchState.outputElement();if(!search){return;}search.innerHTML="

    "+window.searchState.loadingText+"

    ";window.searchState.showResults(search);},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject);});}const list=await descShard.promise;return list[descIndex];},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"));},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&window.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();}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId);}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElems=document.querySelectorAll(`details > summary > section[id^="${implId}"]`,);onEachLazy(implElems,implElem=>{const numbered=/^(.+?)-([0-9]+)$/.exec(implElem.id);if(implElem.id!==implId&&(!numbered||numbered[1]!==implId)){return false;}return onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/^(.+?)-([0-9]+)$/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id);},0);return true;}},);});}}}function onHashChange(ev){hideSidebar();handleHashes(ev);}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true;}elem=elem.parentElement;}}function expandSection(id){openParentDetails(document.getElementById(id));}function handleEscape(ev){window.searchState.clearInputTimeout();window.searchState.hideResults();ev.preventDefault();window.searchState.defocus();window.hideAllModals(true);}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return;}if(document.activeElement&&document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":case"/":ev.preventDefault();window.searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs(false);break;case"_":ev.preventDefault();collapseAllDocs(true);break;case"?":showHelp();break;default:break;}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return;}const sidebar=document.getElementById("rustdoc-modnav");function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return;}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`;}else{path=`${modpath}${shortty}.${name}.html`;}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html";}const link=document.createElement("a");link.href=path;link.textContent=name;const li=document.createElement("li");if(link.href===current_page){li.classList.add("current");}li.appendChild(link);ul.appendChild(li);}sidebar.appendChild(h3);sidebar.appendChild(ul);}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases");}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;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(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","),);for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue;}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop;}inlined_types.add(struct_type);}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){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);}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return;}window.pending_type_impls=undefined;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue;}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList);}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header);}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList);}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href);}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id);}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i;}while(document.getElementById(`${el.id}-${i}`)){i+=1;}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref;}});}idMap.set(el.id,i+1);});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li);}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH);}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block);}if(hasClass(item,"associatedtype")){associatedTypes=block;}else if(hasClass(item,"associatedconstant")){associatedConstants=block;}else{methods=block;}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li);});}outputList.appendChild(template.content);}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue;}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0;});list.replaceChildren(...newChildren);}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls);}function addSidebarCrates(){if(!window.ALL_CRATES){return;}const sidebarElems=document.getElementById("rustdoc-modnav");if(!sidebarElems){return;}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current";}li.appendChild(link);ul.appendChild(li);}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul);}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true;}});innerToggle.children[0].innerText="Summary";}function collapseAllDocs(collapseImpls){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if((collapseImpls||e.parentNode.id!=="implementations-list")||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false;}});innerToggle.children[0].innerText="Show all";}function toggleAllDocs(ev){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return;}if(hasClass(innerToggle,"will-expand")){expandAllDocs();}else{collapseAllDocs(ev!==undefined&&ev.shiftKey);}}(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("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true;}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false;}});}());window.rustdoc_add_line_numbers_to_examples=()=>{function generateLine(nb){return`${nb}`;}onEachLazy(document.querySelectorAll(".rustdoc:not(.src) :not(.scraped-example) > .example-wrap > pre > code",),code=>{if(hasClass(code.parentElement.parentElement,"hide-lines")){removeClass(code.parentElement.parentElement,"hide-lines");return;}const lines=code.innerHTML.split("\n");const digits=(lines.length+"").length;code.innerHTML=lines.map((line,index)=>generateLine(index+1)+line).join("\n");addClass(code.parentElement.parentElement,`digits-${digits}`);});};window.rustdoc_remove_line_numbers_from_examples=()=>{onEachLazy(document.querySelectorAll(".rustdoc:not(.src) :not(.scraped-example) > .example-wrap"),x=>addClass(x,"hide-lines"),);};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples();}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown");}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown");}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true;}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar);}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar();});});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(!e.target.matches("summary, a, a *")){e.preventDefault();}});});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText);}else{throw new Error("showTooltip() called with notable without any notable traits!");}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return;}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
    "+window.NOTABLE_TRAITS[notable_ty]+"
    ";}else{const ttl=e.getAttribute("title");if(ttl!==null){e.setAttribute("data-title",ttl);e.removeAttribute("title");}const dttl=e.getAttribute("data-title");if(dttl!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(dttl));wrapper.appendChild(titleContent);}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";document.body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px";}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px",);}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return;}clearTooltipHoverTimeout(e);};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"||!(ev.relatedTarget instanceof HTMLElement)){return;}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out");}};}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return;}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return;}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return;}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element);}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false);}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS);}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT;}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0);}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus();}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false;}document.body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null;}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true);}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler;}return false;};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return;}setTooltipHoverTimeout(e,true);};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return;}setTooltipHoverTimeout(e,true);};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return;}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");}};});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")){showSidebar();}else{hideSidebar();}});}function helpBlurHandler(event){if(!getHelpButton().contains(document.activeElement)&&!getHelpButton().contains(event.relatedTarget)&&!getSettingsButton().contains(document.activeElement)&&!getSettingsButton().contains(event.relatedTarget)){window.hidePopoverMenus();}}function buildHelpMenu(){const book_info=document.createElement("span");const drloChannel=`https://doc.rust-lang.org/${getVar("channel")}`;book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S / /","Focus the search field"],["↑","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"],["_","Collapse all sections, including impl blocks"],].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=[`For a full list of all search features, take a look \ + here.`,"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 or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"",`Look for functions that accept or return \ + slices and \ + arrays by writing square \ + brackets (e.g., -> [u8] or [] -> Option)`,"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;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);const container=document.createElement("div");if(!isHelpPage){container.className="popover";}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block";}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler;}return container;}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus);};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll("rustdoc-toolbar .popover"),elem=>{elem.style.display="none";});const button=getHelpButton();if(button){removeClass(button,"help-open");}};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu();}return menu;}function showHelp(){const button=getHelpButton();addClass(button,"help-open");button.querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display="";}}const helpLink=document.querySelector(`#${HELP_BUTTON_ID} > a`);if(isHelpPage){buildHelpMenu();}else if(helpLink){helpLink.addEventListener("click",event=>{if(!helpLink.contains(helpLink)||event.ctrlKey||event.altKey||event.metaKey){return;}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp();}else{window.hidePopoverMenus();}});}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);window.searchState.setup();}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar();}e.preventDefault();});}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return;}const isSrcPage=hasClass(document.body,"src");const hideSidebar=function(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width");}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width");}};const showSidebar=function(){if(isSrcPage){window.rustdocShowSourceSidebar();}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");}};const changeSidebarSize=function(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size.toString());sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px");}else{updateLocalStorage("desktop-sidebar-width",size.toString());sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px");}};const isSidebarHidden=function(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar");};const resize=function(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return;}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar();}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame);}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return;}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px",);},100);}};window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN);}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize);}});const stopResize=function(e){if(currentPointerId===null){return;}if(e){e.preventDefault();}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null;}};const initResize=function(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return;}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return;}currentPointerId=e.pointerId;}window.hideAllModals(false);e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null;};resizer.addEventListener("pointerdown",initResize,false);}());(function(){function copyContentToClipboard(content){if(content===null){return;}const el=document.createElement("textarea");el.value=content;el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);}function copyButtonAnimation(button){button.classList.add("clicked");if(button.reset_button_timeout!==undefined){clearTimeout(button.reset_button_timeout);}button.reset_button_timeout=setTimeout(()=>{button.reset_button_timeout=undefined;button.classList.remove("clicked");},1000);}const but=document.getElementById("copy-path");if(!but){return;}but.onclick=()=>{const titleElement=document.querySelector("title");const title=titleElement&&titleElement.textContent?titleElement.textContent.replace(" - Rust",""):"";const[item,module]=title.split(" in ");const path=[item];if(module!==undefined){path.unshift(module);}copyContentToClipboard(path.join("::"));copyButtonAnimation(but);};function copyCode(codeElem){if(!codeElem){return;}copyContentToClipboard(codeElem.textContent);}function getExampleWrap(event){const target=event.target;if(target instanceof HTMLElement){let elem=target;while(elem!==null&&!hasClass(elem,"example-wrap")){if(elem===document.body||elem.tagName==="A"||elem.tagName==="BUTTON"||hasClass(elem,"docblock")){return null;}elem=elem.parentElement;}return elem;}else{return null;}}function addCopyButton(event){const elem=getExampleWrap(event);if(elem===null){return;}elem.removeEventListener("mouseover",addCopyButton);const parent=document.createElement("div");parent.className="button-holder";const runButton=elem.querySelector(".test-arrow");if(runButton!==null){parent.appendChild(runButton);}elem.appendChild(parent);const copyButton=document.createElement("button");copyButton.className="copy-button";copyButton.title="Copy code to clipboard";copyButton.addEventListener("click",()=>{copyCode(elem.querySelector("pre > code"));copyButtonAnimation(copyButton);});parent.appendChild(copyButton);if(!elem.parentElement||!elem.parentElement.classList.contains("scraped-example")||!window.updateScrapedExample){return;}const scrapedWrapped=elem.parentElement;window.updateScrapedExample(scrapedWrapped,parent);}function showHideCodeExampleButtons(event){const elem=getExampleWrap(event);if(elem===null){return;}let buttons=elem.querySelector(".button-holder");if(buttons===null){addCopyButton(event);buttons=elem.querySelector(".button-holder");if(buttons===null){return;}}buttons.classList.toggle("keep-visible");}onEachLazy(document.querySelectorAll(".docblock .example-wrap"),elem=>{elem.addEventListener("mouseover",addCopyButton);elem.addEventListener("click",showHideCodeExampleButtons);});}());(function(){document.body.addEventListener("copy",event=>{let target=nonnull(event.target);let isInsideCode=false;while(target&&target!==document.body){if(target.tagName==="CODE"){isInsideCode=true;break;}target=target.parentElement;}if(!isInsideCode){return;}const selection=document.getSelection();nonnull(event.clipboardData).setData("text/plain",selection.toString());event.preventDefault();});}()); \ No newline at end of file diff --git a/static.files/normalize-76eba96aa4d2e634.css b/static.files/normalize-9960930a.css similarity index 100% rename from static.files/normalize-76eba96aa4d2e634.css rename to static.files/normalize-9960930a.css diff --git a/static.files/noscript-04d5337699b92874.css b/static.files/noscript-04d5337699b92874.css deleted file mode 100644 index fbd55f57..00000000 --- a/static.files/noscript-04d5337699b92874.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--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);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/static.files/noscript-32bb7600.css b/static.files/noscript-32bb7600.css new file mode 100644 index 00000000..c228ec49 --- /dev/null +++ b/static.files/noscript-32bb7600.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root,:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--sidebar-border-color:#ddd;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root,:root:not([data-theme]){--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--sidebar-border-color:#2A2A2A;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(65%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--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);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/static.files/rust-logo-151179464ae7ed46.svg b/static.files/rust-logo-9a9549ea.svg similarity index 100% rename from static.files/rust-logo-151179464ae7ed46.svg rename to static.files/rust-logo-9a9549ea.svg diff --git a/static.files/rustdoc-5bc39a1768837dd0.css b/static.files/rustdoc-5bc39a1768837dd0.css deleted file mode 100644 index 175164ef..00000000 --- a/static.files/rustdoc-5bc39a1768837dd0.css +++ /dev/null @@ -1,24 +0,0 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.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-8f9a781e4970d388.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-46f98efaafac5295.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-acdfaf1a8af734b1.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-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}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:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.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;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;margin-right:0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.2rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.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(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:5px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ - ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ - \ - ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.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;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ - ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"]{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--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);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--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);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/static.files/rustdoc-aa0817cf.css b/static.files/rustdoc-aa0817cf.css new file mode 100644 index 00000000..5fa709d1 --- /dev/null +++ b/static.files/rustdoc-aa0817cf.css @@ -0,0 +1,59 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;--sidebar-elems-left-padding:24px;--clipboard-image:url('data:image/svg+xml,\ +\ +\ +');--copy-path-height:34px;--copy-path-width:33px;--checkmark-image:url('data:image/svg+xml,\ +\ +');--button-left-margin:4px;--button-border-radius:2px;--toolbar-button-border-radius:6px;--code-block-border-radius:6px;--impl-items-indent:0.3em;--docblock-indent:24px;--font-family:"Source Serif 4",NanumBarunGothic,serif;--font-family-code:"Source Code Pro",monospace;--line-number-padding:4px;--line-number-right-margin:20px;--prev-arrow-image:url('data:image/svg+xml,');--next-arrow-image:url('data:image/svg+xml,');--expand-arrow-image:url('data:image/svg+xml,');--collapse-arrow-image:url('data:image/svg+xml,');--hamburger-image:url('data:image/svg+xml,\ + ');}:root.sans-serif{--font-family:"Fira Sans",sans-serif;--font-family-code:"Fira Mono",monospace;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-0fe48ade.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:italic;font-weight:400;src:local('Fira Sans Italic'),url("FiraSans-Italic-81dc35de.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-e1aa3f0a.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:italic;font-weight:500;src:local('Fira Sans Medium Italic'),url("FiraSans-MediumItalic-ccf7e434.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Mono';font-style:normal;font-weight:400;src:local('Fira Mono'),url("FiraMono-Regular-87c26294.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Mono';font-style:normal;font-weight:500;src:local('Fira Mono Medium'),url("FiraMono-Medium-86f75c8c.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-6b053e98.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-ca3b17ed.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:500;src:local('Source Serif 4 Semibold'),url("SourceSerif4-Semibold-457a13ac.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-6d4fd4c0.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-8badfe75.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-fc8b9304.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-aa29a496.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-13b3dcba.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 var(--font-family);margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}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:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;grid-area:main-heading-h1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{position:relative;display:grid;grid-template-areas:"main-heading-breadcrumbs main-heading-breadcrumbs" "main-heading-h1 main-heading-toolbar" "main-heading-sub-heading main-heading-toolbar";grid-template-columns:minmax(105px,1fr) minmax(0,max-content);grid-template-rows:minmax(25px,min-content) min-content min-content;padding-bottom:6px;margin-bottom:15px;}.rustdoc-breadcrumbs{grid-area:main-heading-breadcrumbs;line-height:1.25;padding-top:5px;position:relative;z-index:1;}.rustdoc-breadcrumbs a{padding:5px 0 7px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}.structfield,.sub-variant-field{margin:0.6em 0;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-table dt>a,.out-of-band,.sub-heading,span.since,a.src,rustdoc-toolbar,summary.hideme,.scraped-example-list,.rustdoc-breadcrumbs,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.search-results li,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,.code-header,.type-signature{font-family:var(--font-family-code);}.docblock code,.item-table dd code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.item-table dd pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;padding-left:16px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);border-right:solid 1px var(--sidebar-border-color);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:ew-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:var(--desktop-sidebar-width);display:flex;align-items:center;justify-content:flex-start;color:var(--right-side-color);}.sidebar-resizer::before{content:"";border-right:dotted 2px currentColor;width:2px;height:12px;}.sidebar-resizer::after{content:"";border-right:dotted 2px currentColor;width:2px;height:16px;}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing *{cursor:ew-resize !important;}.sidebar-resizing .sidebar{position:fixed;border-right:solid 2px var(--sidebar-resizer-active);}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:calc(var(--desktop-sidebar-width) - 1px);border-left:solid 1px var(--sidebar-resizer-hover);color:var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}.sidebar{border-right:none;}}.sidebar-resizer.active{padding:0 140px;width:calc(140px + 140px + 9px + 2px);margin-left:-140px;border-left:none;color:var(--sidebar-resizer-active);}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li,.block ul{padding:0;margin:0;list-style:none;}.block ul a{padding-left:1rem;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.hide-toc #rustdoc-toc,.hide-toc .in-crate{display:none;}.hide-modnav #rustdoc-modnav{display:none;}.sidebar h2{text-wrap:balance;overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{text-wrap:balance;overflow-wrap:anywhere;font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:var(--sidebar-elems-left-padding);}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap>pre,.rustdoc .scraped-example .src-line-numbers,.rustdoc .scraped-example .src-line-numbers>pre{border-radius:6px;}.rustdoc .scraped-example{position:relative;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 10 + 10px);}.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers,.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers>pre,.rustdoc:not(.src) .scraped-example:not(.expanded) pre.rust{padding-bottom:0;overflow:auto hidden;}.rustdoc:not(.src) .scraped-example .src-line-numbers{padding-top:0;}.rustdoc:not(.src) .scraped-example.expanded .src-line-numbers{padding-bottom:0;}.rustdoc:not(.src) .example-wrap pre{overflow:auto;}.example-wrap code{position:relative;}.example-wrap pre code span{display:inline;}.example-wrap.digits-1{--example-wrap-digits-count:1ch;}.example-wrap.digits-2{--example-wrap-digits-count:2ch;}.example-wrap.digits-3{--example-wrap-digits-count:3ch;}.example-wrap.digits-4{--example-wrap-digits-count:4ch;}.example-wrap.digits-5{--example-wrap-digits-count:5ch;}.example-wrap.digits-6{--example-wrap-digits-count:6ch;}.example-wrap.digits-7{--example-wrap-digits-count:7ch;}.example-wrap.digits-8{--example-wrap-digits-count:8ch;}.example-wrap.digits-9{--example-wrap-digits-count:9ch;}.example-wrap [data-nosnippet]{width:calc(var(--example-wrap-digits-count) + var(--line-number-padding) * 2);}.example-wrap pre>code{padding-left:calc(var(--example-wrap-digits-count) + var(--line-number-padding) * 2 + var(--line-number-right-margin));}.example-wrap [data-nosnippet]{color:var(--src-line-numbers-span-color);text-align:right;display:inline-block;margin-right:var(--line-number-right-margin);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:0 var(--line-number-padding);position:absolute;left:0;}.example-wrap .line-highlighted[data-nosnippet]{background-color:var(--src-line-number-highlighted-background-color);}.example-wrap pre>code{position:relative;display:block;}:root.word-wrap-source-code .example-wrap pre>code{word-break:break-all;white-space:pre-wrap;}:root.word-wrap-source-code .example-wrap pre>code *{word-break:break-all;}.example-wrap [data-nosnippet]:target{border-right:none;}.example-wrap.hide-lines [data-nosnippet]{display:none;}.search-loading{text-align:center;}.item-table dd{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.item-table dd code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.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:var(--docblock-indent);position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.sub-heading{font-size:1rem;flex-grow:0;grid-area:main-heading-sub-heading;line-height:1.25;padding-bottom:4px;}.main-heading rustdoc-toolbar,.main-heading .out-of-band{grid-area:main-heading-toolbar;}rustdoc-toolbar{display:flex;flex-direction:row;flex-wrap:nowrap;min-height:60px;}.docblock code,.item-table dd code,pre,.rustdoc.src .example-wrap,.example-wrap .src-line-numbers{background-color:var(--code-block-background-color);border-radius:var(--code-block-border-radius);text-decoration:inherit;}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.docblock .stab,.item-table dd .stab,.docblock p code{display:inline-block;}.docblock li{margin-bottom:.4em;}.docblock li p:not(:last-child){margin-bottom:.3em;}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:var(--docblock-indent);}.impl-items>.item-info{margin-left:calc(var(--docblock-indent) + var(--impl-items-indent));}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 0 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;margin-bottom:4px;}.src nav.sub{margin:0 0 -10px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:10px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover:not([data-nosnippet]),.all-items a:hover,.docblock a:not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.item-table dd a:not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{padding:0;margin:0;width:100%;}.item-table>dt{padding-right:1.25rem;}.item-table>dd{margin-inline-start:0;margin-left:0;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}.search-results-title+.sub-heading{color:var(--main-color);display:flex;align-items:baseline;white-space:nowrap;}#crate-search-div{position:relative;min-width:0;}#crate-search{padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ + ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;margin:0;padding:0;}.search-results>a{display:grid;grid-template-areas:"search-result-name search-result-desc" "search-result-type-signature search-result-type-signature";grid-template-columns:.6fr .4fr;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);column-gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;grid-area:search-result-desc;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;grid-area:search-result-name;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.search-results .type-signature{grid-area:search-result-type-signature;white-space:pre-wrap;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-check input{flex-shrink:0;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ + \ + ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#settings.popover{--popover-arrow-offset:202px;top:calc(100% - 16px);}#help.popover{max-width:600px;--popover-arrow-offset:118px;top:calc(100% - 16px);}#help dt{float:left;clear:left;margin-right:0.5rem;}#help dd{margin-bottom:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;padding:0 0.5rem;text-wrap-style:balance;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side{display:flex;margin-bottom:20px;}.side-by-side>div{width:50%;padding:0 20px 0 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-table dt .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band,.sub-heading,rustdoc-toolbar{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a:not([data-nosnippet]){background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}.example-wrap>a.test-arrow,.example-wrap .button-holder{visibility:hidden;position:absolute;top:4px;right:4px;z-index:1;}a.test-arrow{height:var(--copy-path-height);padding:6px 4px 0 11px;}a.test-arrow::before{content:url('data:image/svg+xml,');}.example-wrap .button-holder{display:flex;}@media not (pointer:coarse){.example-wrap:hover>a.test-arrow,.example-wrap:hover>.button-holder{visibility:visible;}}.example-wrap .button-holder.keep-visible{visibility:visible;}.example-wrap .button-holder>*{background:var(--main-background-color);cursor:pointer;border-radius:var(--button-border-radius);height:var(--copy-path-height);width:var(--copy-path-width);border:0;color:var(--code-example-button-color);}.example-wrap .button-holder>*:hover{color:var(--code-example-button-hover-color);}.example-wrap .button-holder>*:not(:first-child){margin-left:var(--button-left-margin);}.example-wrap .button-holder .copy-button{padding:2px 0 0 4px;}.example-wrap .button-holder .copy-button::before,.example-wrap .test-arrow::before,.example-wrap .button-holder .prev::before,.example-wrap .button-holder .next::before,.example-wrap .button-holder .expand::before{filter:var(--copy-path-img-filter);}.example-wrap .button-holder .copy-button::before{content:var(--clipboard-image);}.example-wrap .button-holder .copy-button:hover::before,.example-wrap .test-arrow:hover::before{filter:var(--copy-path-img-hover-filter);}.example-wrap .button-holder .copy-button.clicked::before{content:var(--checkmark-image);padding-right:5px;}.example-wrap .button-holder .prev,.example-wrap .button-holder .next,.example-wrap .button-holder .expand{line-height:0px;}.example-wrap .button-holder .prev::before{content:var(--prev-arrow-image);}.example-wrap .button-holder .next::before{content:var(--next-arrow-image);}.example-wrap .button-holder .expand::before{content:var(--expand-arrow-image);}.example-wrap .button-holder .expand.collapse::before{content:var(--collapse-arrow-image);}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.main-heading span.since::before{content:"Since ";}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}@keyframes targetfadein{from{background-color:var(--main-background-color);}10%{background-color:var(--target-border-color);}to{background-color:var(--target-background-color);}}:target:not([data-nosnippet]){background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}@media not (prefers-reduced-motion){:target{animation:0.65s cubic-bezier(0,0,0.1,1.0) 0.1s targetfadein;}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.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;}#search-tabs{margin-top:0.25rem;display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button,button#toggle-all-docs{margin-left:var(--button-left-margin);display:flex;line-height:1.25;min-width:14px;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;height:34px;width:34px;}.hide-sidebar #sidebar-button{left:6px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a,button#toggle-all-docs{display:flex;align-items:center;justify-content:center;flex-direction:column;}#settings-menu>a,#help-button>a,button#toggle-all-docs{border:1px solid transparent;border-radius:var(--button-border-radius);color:var(--main-color);}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:80px;border-radius:var(--toolbar-button-border-radius);}#settings-menu>a,#help-button>a{min-width:0;}#sidebar-button>a{background-color:var(--sidebar-background-color);width:33px;}#sidebar-button>a:hover,#sidebar-button>a:focus-visible{background-color:var(--main-background-color);}#settings-menu>a:hover,#settings-menu>a:focus-visible,#help-button>a:hover,#help-button>a:focus-visible,button#toggle-all-docs:hover,button#toggle-all-docs:focus-visible{border-color:var(--settings-button-border-focus);text-decoration:none;}#settings-menu>a::before{content:url('data:image/svg+xml,\ + ');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs::before{content:url('data:image/svg+xml,\ + ');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs.will-expand::before{content:url('data:image/svg+xml,\ + ');}#help-button>a::before{content:url('data:image/svg+xml,\ + \ + ?');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs::before,#help-button>a::before,#settings-menu>a::before{filter:var(--settings-menu-filter);margin:8px;}@media not (pointer:coarse){button#toggle-all-docs:hover::before,#help-button>a:hover::before,#settings-menu>a:hover::before{filter:var(--settings-menu-hover-filter);}}button[disabled]#toggle-all-docs{opacity:0.25;border:solid 1px var(--main-background-color);background-size:cover;}button[disabled]#toggle-all-docs:hover{border:solid 1px var(--main-background-color);cursor:not-allowed;}rustdoc-toolbar span.label{font-size:1rem;flex-grow:1;padding-bottom:4px;}#sidebar-button>a::before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:var(--copy-path-height);width:var(--copy-path-width);margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:var(--clipboard-image);}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:var(--checkmark-image);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.big-toggle{contain:inline-size;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,\ + ');content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>.methods>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}.impl-items>*:not(.item-info),.implementors-toggle>.docblock,#main-content>.methods>:not(.item-info),.impl>.item-info,.impl>.docblock,.impl+.docblock{margin-left:var(--impl-items-indent);}details.big-toggle>summary:not(.hideme)::before{left:-34px;top:9px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,\ + ');}details.toggle[open] >summary::after{content:"Collapse";}details.toggle:not([open])>summary .docblock{max-height:calc(1.5em + 0.75em);overflow-y:hidden;}details.toggle:not([open])>summary .docblock>:first-child{max-width:100%;overflow:hidden;width:fit-content;white-space:nowrap;position:relative;padding-right:1em;}details.toggle:not([open])>summary .docblock>:first-child::after{content:"…";position:absolute;right:0;top:0;bottom:0;z-index:1;background-color:var(--main-background-color);font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;padding-left:0.2em;}details.toggle:not([open])>summary .docblock>div:first-child::after{padding-top:calc(1.5em + 0.75em - 1.2rem);}details.toggle>summary .docblock{margin-top:0.75em;}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a::before,.sidebar-menu-toggle::before{content:var(--hamburger-image);opacity:0.75;filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover::before,.sidebar-menu-toggle:active::before,.sidebar-menu-toggle:focus::before{opacity:1;}@media (max-width:850px){#search-tabs .count{display:block;}.side-by-side{flex-direction:column-reverse;}.side-by-side>div{width:auto;}}@media (max-width:700px){:root{--impl-items-indent:0.7em;}*[id]{scroll-margin-top:45px;}#copy-path{width:0;visibility:hidden;}rustdoc-toolbar span.label{display:none;}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:33px;}#settings.popover{--popover-arrow-offset:86px;}#help.popover{--popover-arrow-offset:48px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);border-right:none;width:100%;}.sidebar-elems .block li a{white-space:wrap;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.src .main-heading{margin-left:8px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#sidebar-button>a::before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table dd{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.implementors-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>.methods>details.toggle>summary:not(.hideme)::before{left:-20px;}summary>.item-info{margin-left:10px;}.impl-items>.item-info{margin-left:calc(var(--impl-items-indent) + 10px);}.src nav.sub{margin:0 0 -25px 0;padding:var(--nav-sub-mobile-padding);}html:not(.src-sidebar-expanded) .src #sidebar-button>a{background-color:var(--main-background-color);}html:not(.src-sidebar-expanded) .src #sidebar-button>a:hover,html:not(.src-sidebar-expanded) .src #sidebar-button>a:focus-visible{background-color:var(--sidebar-background-color);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}.item-table:not(.reexports){display:grid;grid-template-columns:33% 67%;}.item-table>dt,.item-table>dd{overflow-wrap:anywhere;}.item-table>dt{grid-column-start:1;}.item-table>dd{grid-column-start:2;}}@media print{:root{--docblock-indent:0;}nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}main{padding:10px;}}@media (max-width:464px){:root{--docblock-indent:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example:not(.expanded) .example-wrap::before,.scraped-example:not(.expanded) .example-wrap::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .example-wrap::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .example-wrap::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded){width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded){overflow-x:hidden;}.scraped-example .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--sidebar-border-color:#ddd;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--sidebar-border-color:#999;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(65%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--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);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--sidebar-border-color:#5c6773;--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--code-example-button-color:#b2b2b2;--code-example-button-hover-color:#fff;--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--settings-menu-filter:invert(70%);--settings-menu-hover-filter:invert(100%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--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);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] a[data-nosnippet].line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a::before{filter:invert(100);} \ No newline at end of file diff --git a/static.files/scrape-examples-5e967b76.js b/static.files/scrape-examples-5e967b76.js new file mode 100644 index 00000000..40dfe842 --- /dev/null +++ b/static.files/scrape-examples-5e967b76.js @@ -0,0 +1 @@ +"use strict";(function(){const DEFAULT_MAX_LINES=5;const HIDDEN_MAX_LINES=10;function scrollToLoc(elt,loc,isHidden){const lines=elt.querySelectorAll("[data-nosnippet]");let scrollOffset;const maxLines=isHidden?HIDDEN_MAX_LINES:DEFAULT_MAX_LINES;if(loc[1]-loc[0]>maxLines){const line=Math.max(0,loc[0]-1);scrollOffset=lines[line].offsetTop;}else{const halfHeight=elt.offsetHeight/2;const offsetTop=lines[loc[0]].offsetTop;const lastLine=lines[loc[1]];const offsetBot=lastLine.offsetTop+lastLine.offsetHeight;const offsetMid=(offsetTop+offsetBot)/2;scrollOffset=offsetMid-halfHeight;}lines[0].parentElement.scrollTo(0,scrollOffset);elt.querySelector(".rust").scrollTo(0,scrollOffset);}function createScrapeButton(parent,className,content){const button=document.createElement("button");button.className=className;button.title=content;parent.insertBefore(button,parent.firstChild);return button;}window.updateScrapedExample=(example,buttonHolder)=>{let locIndex=0;const highlights=Array.prototype.slice.call(example.querySelectorAll(".highlight"));const link=example.querySelector(".scraped-example-title a");let expandButton=null;if(!example.classList.contains("expanded")){expandButton=createScrapeButton(buttonHolder,"expand","Show all");}const isHidden=example.parentElement.classList.contains("more-scraped-examples");const locs=example.locs;if(locs.length>1){const next=createScrapeButton(buttonHolder,"next","Next usage");const prev=createScrapeButton(buttonHolder,"prev","Previous usage");const onChangeLoc=changeIndex=>{removeClass(highlights[locIndex],"focus");changeIndex();scrollToLoc(example,locs[locIndex][0],isHidden);addClass(highlights[locIndex],"focus");const url=locs[locIndex][1];const title=locs[locIndex][2];link.href=url;link.innerHTML=title;};prev.addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex-1+locs.length)%locs.length;});});next.addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex+1)%locs.length;});});}if(expandButton){expandButton.addEventListener("click",()=>{if(hasClass(example,"expanded")){removeClass(example,"expanded");removeClass(expandButton,"collapse");expandButton.title="Show all";scrollToLoc(example,locs[0][0],isHidden);}else{addClass(example,"expanded");addClass(expandButton,"collapse");expandButton.title="Show single example";}});}};function setupLoc(example,isHidden){example.locs=JSON.parse(example.attributes.getNamedItem("data-locs").textContent);scrollToLoc(example,example.locs[0][0],isHidden);}const firstExamples=document.querySelectorAll(".scraped-example-list > .scraped-example");onEachLazy(firstExamples,el=>setupLoc(el,false));onEachLazy(document.querySelectorAll(".more-examples-toggle"),toggle=>{onEachLazy(toggle.querySelectorAll(".toggle-line, .hide-more"),button=>{button.addEventListener("click",()=>{toggle.open=false;});});const moreExamples=toggle.querySelectorAll(".scraped-example");toggle.querySelector("summary").addEventListener("click",()=>{setTimeout(()=>{onEachLazy(moreExamples,el=>setupLoc(el,true));});},{once:true});});})(); \ No newline at end of file diff --git a/static.files/scrape-examples-ef1e698c1d417c0c.js b/static.files/scrape-examples-ef1e698c1d417c0c.js deleted file mode 100644 index ba830e37..00000000 --- a/static.files/scrape-examples-ef1e698c1d417c0c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(function(){const DEFAULT_MAX_LINES=5;const HIDDEN_MAX_LINES=10;function scrollToLoc(elt,loc,isHidden){const lines=elt.querySelector(".src-line-numbers");let scrollOffset;const maxLines=isHidden?HIDDEN_MAX_LINES:DEFAULT_MAX_LINES;if(loc[1]-loc[0]>maxLines){const line=Math.max(0,loc[0]-1);scrollOffset=lines.children[line].offsetTop}else{const wrapper=elt.querySelector(".code-wrapper");const halfHeight=wrapper.offsetHeight/2;const offsetTop=lines.children[loc[0]].offsetTop;const lastLine=lines.children[loc[1]];const offsetBot=lastLine.offsetTop+lastLine.offsetHeight;const offsetMid=(offsetTop+offsetBot)/2;scrollOffset=offsetMid-halfHeight}lines.scrollTo(0,scrollOffset);elt.querySelector(".rust").scrollTo(0,scrollOffset)}function updateScrapedExample(example,isHidden){const locs=JSON.parse(example.attributes.getNamedItem("data-locs").textContent);let locIndex=0;const highlights=Array.prototype.slice.call(example.querySelectorAll(".highlight"));const link=example.querySelector(".scraped-example-title a");if(locs.length>1){const onChangeLoc=changeIndex=>{removeClass(highlights[locIndex],"focus");changeIndex();scrollToLoc(example,locs[locIndex][0],isHidden);addClass(highlights[locIndex],"focus");const url=locs[locIndex][1];const title=locs[locIndex][2];link.href=url;link.innerHTML=title};example.querySelector(".prev").addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex-1+locs.length)%locs.length})});example.querySelector(".next").addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex+1)%locs.length})})}const expandButton=example.querySelector(".expand");if(expandButton){expandButton.addEventListener("click",()=>{if(hasClass(example,"expanded")){removeClass(example,"expanded");scrollToLoc(example,locs[0][0],isHidden)}else{addClass(example,"expanded")}})}scrollToLoc(example,locs[0][0],isHidden)}const firstExamples=document.querySelectorAll(".scraped-example-list > .scraped-example");onEachLazy(firstExamples,el=>updateScrapedExample(el,false));onEachLazy(document.querySelectorAll(".more-examples-toggle"),toggle=>{onEachLazy(toggle.querySelectorAll(".toggle-line, .hide-more"),button=>{button.addEventListener("click",()=>{toggle.open=false})});const moreExamples=toggle.querySelectorAll(".scraped-example");toggle.querySelector("summary").addEventListener("click",()=>{setTimeout(()=>{onEachLazy(moreExamples,el=>updateScrapedExample(el,true))})},{once:true})})})() \ No newline at end of file diff --git a/static.files/search-dd67cee4cfa65049.js b/static.files/search-dd67cee4cfa65049.js deleted file mode 100644 index ef8bf865..00000000 --- a/static.files/search-dd67cee4cfa65049.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||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;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let functionTypeFingerprint;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;let typeNameIdOfTuple;let typeNameIdOfUnit;let typeNameIdOfTupleOrUnit;function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["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["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["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===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",normalizedPathLast:"never",generics:[],bindings:new Map(),typeFilter:"primitive",bindingName,}}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){bindings.set(gen.bindingName.name,[gen,...gen.bindingName.generics]);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}else{throw["Unexpected ",c]}}parserState.pos+=1;end=parserState.pos}if(foundExclamation!==-1&&foundExclamation!==start&&isIdentCharacter(parserState.userQuery[foundExclamation-1])){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=foundExclamation}return end}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const isInBinding=parserState.isInBinding;if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else{parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push({name:name,id:null,fullPath:[name],pathWithoutLast:[],pathLast:name,normalizedPathLast:name,generics,bindings:new Map(),typeFilter:"primitive",bindingName:isInBinding,})}}else{const isStringElem=parserState.userQuery[start]==="\"";if(isStringElem){start+=1;getStringElem(query,parserState,isInGenerics);end=parserState.pos-1}else{end=getIdentEndPosition(parserState)}if(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}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"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;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,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);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.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});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb);if(passesUnification){return true}}return false});if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false});return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens){if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens)}return false}function checkIfInList(list,elem,whereClause,mgens){for(const entry of list){if(checkType(entry,elem,whereClause,mgens)){return true}}return false}function checkType(row,elem,whereClause,mgens){if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens)}}return unifyFunctionTypes([row],[elem],whereClause,mgens)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3);let ret_dist=maxPathEditDistance+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;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}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,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(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()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}))}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
    \ -${item.alias} - see \ -
    `}resultName.insertAdjacentHTML("beforeend",`
    ${alias}\ -${item.displayPath}${name}\ -
    `);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);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,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${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")){window.onunload=()=>{};searchState.removeQueryParameters();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(rawSearchIndex.size>1){crates=" in 
    "}let output=`

    Results${crates}

    `;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

    Query parser error: "${error.join("")}".

    `;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}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

    "+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

    `}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

    "+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

    `}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("search-tabs").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 updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(forced){const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchType(itemFunctionDecoder,lowercasePaths){const c=itemFunctionDecoder.string.charCodeAt(itemFunctionDecoder.offset);itemFunctionDecoder.offset+=1;const[zero,ua,la,ob,cb]=["0","@","`","{","}"].map(c=>c.charCodeAt(0));if(c===la){return null}if(c>=zero&&c>1];itemFunctionDecoder.offset+=1;return sign?-value:value}const functionSearchType=decodeList();const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i16){itemFunctionDecoder.backrefQueue.pop()}return ret}function buildFunctionTypeFingerprint(type,output,fps){let input=type.id;if(input===typeNameIdOfArray||input===typeNameIdOfSlice){input=typeNameIdOfArrayOrSlice}if(input===typeNameIdOfTuple||input===typeNameIdOfUnit){input=typeNameIdOfTupleOrUnit}const hashint1=k=>{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}function buildIndex(rawSearchIndex){searchIndex=[];typeNameIdMap=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;typeNameIdOfArray=buildTypeMapIndex("array");typeNameIdOfSlice=buildTypeMapIndex("slice");typeNameIdOfTuple=buildTypeMapIndex("tuple");typeNameIdOfUnit=buildTypeMapIndex("unit");typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const crateRow={crate:crate,ty:3,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated:null,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionDecoder={string:crateCorpus.f,offset:0,backrefQueue:[],};const deprecatedItems=new Set(crateCorpus.c);const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type,id:id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length}TYPES_POOL=new Map()}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 params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){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;e.preventDefault();search()}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 query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/static.files/search-fa3e91e5.js b/static.files/search-fa3e91e5.js new file mode 100644 index 00000000..d4818b4f --- /dev/null +++ b/static.files/search-fa3e91e5.js @@ -0,0 +1,6 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me;};}function onEachBtwn(arr,func,funcBtwn){let skipped=true;for(const value of arr){if(!skipped){funcBtwn(value);}skipped=func(value);}}function undef2null(x){if(x!==undefined){return x;}return null;}const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_GENERIC=itemTypes.indexOf("generic");const TY_IMPORT=itemTypes.indexOf("import");const TY_TRAIT=itemTypes.indexOf("trait");const TY_FN=itemTypes.indexOf("fn");const TY_METHOD=itemTypes.indexOf("method");const TY_TYMETHOD=itemTypes.indexOf("tymethod");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";const UNBOXING_LIMIT=5;const REGEX_IDENT=/\p{ID_Start}\p{ID_Continue}*|_\p{ID_Continue}+/uy;const REGEX_INVALID_TYPE_FILTER=/[^a-z]/ui;const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1;}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1);}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1);}if(b.length===0){return minDist;}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE;}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost,);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1,);}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp;}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1);},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit);}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1;}function isFnLikeTy(ty){return ty===TY_FN||ty===TY_METHOD||ty===TY_TYMETHOD;}function isSeparatorCharacter(c){return c===","||c==="=";}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->";}function skipWhitespace(parserState){while(parserState.pos0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true;}else if(c!==" "){break;}pos-=1;}return false;}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">");}function getFilteredNextElem(query,parserState,elems,isInGenerics){const start=parserState.pos;if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){throw["Expected type filter before ",":"];}getNextElem(query,parserState,elems,isInGenerics);if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",];}if(elems.length===0){throw["Expected type filter before ",":"];}else if(query.literalSearch){throw["Cannot use quotes on type filter"];}const typeFilterElem=elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.normalizedPathLast;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;getNextElem(query,parserState,elems,isInGenerics);}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let hofParameters=null;let extra="";if(endChar===">"){extra="<";}else if(endChar==="]"){extra="[";}else if(endChar===")"){extra="(";}else if(endChar===""){extra="->";}else{extra=endChar;}while(parserState.pos"," after ","="];}hofParameters=[...elems];elems.length=0;parserState.pos+=2;foundStopChar=true;foundSeparator=false;continue;}else if(c===" "){parserState.pos+=1;continue;}else if(isSeparatorCharacter(c)){parserState.pos+=1;foundStopChar=true;foundSeparator=true;continue;}else if(c===":"&&isPathStart(parserState)){throw["Unexpected ","::",": paths cannot start with ","::"];}else if(isEndCharacter(c)){throw["Unexpected ",c," after ",extra];}if(!foundStopChar){let extra=[];if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"];}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"];}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,];}throw["Expected ",","," or ","=",...extra,", found ",c,];}const posBefore=parserState.pos;getFilteredNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra];}if(posBefore===parserState.pos){parserState.pos+=1;}foundStopChar=false;}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra];}parserState.pos+=1;if(hofParameters){foundSeparator=false;if([...elems,...hofParameters].some(x=>x.bindingName)||parserState.isInBinding){throw["Unexpected ","="," within ","->"];}const hofElem=makePrimitiveElement("->",{generics:hofParameters,bindings:new Map([["output",[...elems]]]),typeFilter:null,});elems.length=0;elems[0]=hofElem;}parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator};}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice";}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const bindingName=parserState.isInBinding;parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name];}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0]);}else if(name==="()"&&generics.length===1&&generics[0].name==="->"){generics[0].typeFilter=typeFilter;elems.push(generics[0]);}else{if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",];}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1;}elems.push(makePrimitiveElement(name,{bindingName,generics}));}}else if(parserState.userQuery[parserState.pos]==="&"){if(parserState.typeFilter!==null&&parserState.typeFilter!=="primitive"){throw["Invalid search type: primitive ","&"," and ",parserState.typeFilter," both specified",];}parserState.typeFilter=null;parserState.pos+=1;let c=parserState.userQuery[parserState.pos];while(c===" "&&parserState.pos=end){throw["Found generics without a path"];}parserState.pos+=1;getItemsBefore(query,parserState,generics,">");}else if(parserState.pos=end){throw["Found generics without a path"];}if(parserState.isInBinding){throw["Unexpected ","("," after ","="];}parserState.pos+=1;const typeFilter=parserState.typeFilter;parserState.typeFilter=null;getItemsBefore(query,parserState,generics,")");skipWhitespace(parserState);if(isReturnArrow(parserState)){parserState.pos+=2;skipWhitespace(parserState);getFilteredNextElem(query,parserState,generics,isInGenerics);generics[generics.length-1].bindingName=makePrimitiveElement("output");}else{generics.push(makePrimitiveElement(null,{bindingName:makePrimitiveElement("output"),typeFilter:null,}));}parserState.typeFilter=typeFilter;}if(isStringElem){skipWhitespace(parserState);}if(start>=end&&generics.length===0){return;}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"];}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"];}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"];}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"];}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"];}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"];}parserState.isInBinding={name,generics};}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics,),);}}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();const match=query.match(REGEX_INVALID_TYPE_FILTER);if(match){throw["Unexpected ",match[0]," in type filter (before ",":",")",];}}function createQueryElement(query,parserState,name,generics,isInGenerics){const path=name.trim();if(path.length===0&&generics.length===0){throw["Unexpected ",parserState.userQuery[parserState.pos]];}if(query.literalSearch&&parserState.totalElems-parserState.genericsElems>0){throw["Cannot have more than one element if you use quotes"];}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name.trim()==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",];}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",];}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return makePrimitiveElement("never",{bindingName});}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"];}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]];}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/).map(x=>x.toLowerCase());if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"];}else{throw["Unexpected ",parserState.userQuery[parserState.pos]];}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"];}pathSegments[i]="never";}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1;}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null&&gen.bindingName.name!==null){if(gen.name!==null){gen.bindingName.generics.unshift(gen);}bindings.set(gen.bindingName.name.toLowerCase().replace(/_/g,""),gen.bindingName.generics,);return false;}return true;}),bindings,typeFilter,bindingName,};}function makePrimitiveElement(name,extra){return Object.assign({name,id:null,fullPath:[name],pathWithoutLast:[],pathLast:name,normalizedPathLast:name,generics:[],bindings:new Map(),typeFilter:"primitive",bindingName:null,},extra);}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"];}else if(query.literalSearch){throw["Cannot have more than one literal search element"];}else if(parserState.totalElems-parserState.genericsElems>0){throw["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["Unclosed ","\""];}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"];}else if(start===end){throw["Cannot have empty string element"];}parserState.pos+=1;query.literalSearch=true;}function getIdentEndPosition(parserState){let afterIdent=consumeIdent(parserState);let end=parserState.pos;let macroExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]," (not a valid identifier)"];}else{throw["Unexpected ",c," (not a valid identifier)"];}parserState.pos+=1;afterIdent=consumeIdent(parserState);end=parserState.pos;}if(macroExclamation!==-1){if(parserState.typeFilter===null){parserState.typeFilter="macro";}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",];}end=macroExclamation;}return end;}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1;}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::";}function consumeIdent(parserState){REGEX_IDENT.lastIndex=parserState.pos;const match=parserState.userQuery.match(REGEX_IDENT);if(match){parserState.pos+=match[0].length;return true;}return false;}function isPathSeparator(c){return c===":"||c===" ";}class VlqHexDecoder{constructor(string,cons){this.string=string;this.cons=cons;this.offset=0;this.backrefQueue=[];}decodeList(){let c=this.string.charCodeAt(this.offset);const ret=[];while(c!==125){ret.push(this.decode());c=this.string.charCodeAt(this.offset);}this.offset+=1;return ret;}decode(){let n=0;let c=this.string.charCodeAt(this.offset);if(c===123){this.offset+=1;return this.decodeList();}while(c<96){n=(n<<4)|(c&0xF);this.offset+=1;c=this.string.charCodeAt(this.offset);}n=(n<<4)|(c&0xF);const[sign,value]=[n&1,n>>1];this.offset+=1;return sign?-value:value;}next(){const c=this.string.charCodeAt(this.offset);if(c>=48&&c<64){this.offset+=1;return this.backrefQueue[c-48];}if(c===96){this.offset+=1;return this.cons(0);}const result=this.cons(this.decode());this.backrefQueue.unshift(result);if(this.backrefQueue.length>16){this.backrefQueue.pop();}return result;}}class RoaringBitmap{constructor(str){const strdecoded=atob(str);const u8array=new Uint8Array(strdecoded.length);for(let j=0;j=4){offsets=[];for(let j=0;j>3]&(1<<(j&0x7))){const runcount=(u8array[i]|(u8array[i+1]<<8));i+=2;this.containers.push(new RoaringBitmapRun(runcount,u8array.slice(i,i+(runcount*4)),));i+=runcount*4;}else if(this.cardinalities[j]>=4096){this.containers.push(new RoaringBitmapBits(u8array.slice(i,i+8192)));i+=8192;}else{const end=this.cardinalities[j]*2;this.containers.push(new RoaringBitmapArray(this.cardinalities[j],u8array.slice(i,i+end),));i+=end;}}}contains(keyvalue){const key=keyvalue>>16;const value=keyvalue&0xFFFF;let left=0;let right=this.keys.length-1;while(left<=right){const mid=Math.floor((left+right)/2);const x=this.keys[mid];if(xkey){right=mid-1;}else{return this.containers[mid].contains(value);}}return false;}}class RoaringBitmapRun{constructor(runcount,array){this.runcount=runcount;this.array=array;}contains(value){let left=0;let right=this.runcount-1;while(left<=right){const mid=Math.floor((left+right)/2);const i=mid*4;const start=this.array[i]|(this.array[i+1]<<8);const lenm1=this.array[i+2]|(this.array[i+3]<<8);if((start+lenm1)value){right=mid-1;}else{return true;}}return false;}}class RoaringBitmapArray{constructor(cardinality,array){this.cardinality=cardinality;this.array=array;}contains(value){let left=0;let right=this.cardinality-1;while(left<=right){const mid=Math.floor((left+right)/2);const i=mid*2;const x=this.array[i]|(this.array[i+1]<<8);if(xvalue){right=mid-1;}else{return true;}}return false;}}class RoaringBitmapBits{constructor(array){this.array=array;}contains(value){return!!(this.array[value>>3]&(1<<(value&7)));}}class NameTrie{constructor(){this.children=[];this.matches=[];}insert(name,id,tailTable){this.insertSubstring(name,0,id,tailTable);}insertSubstring(name,substart,id,tailTable){const l=name.length;if(substart===l){this.matches.push(id);}else{const sb=name.charCodeAt(substart);let child;if(this.children[sb]!==undefined){child=this.children[sb];}else{child=new NameTrie();this.children[sb]=child;let sste;if(substart>=2){const tail=name.substring(substart-2,substart+1);const entry=tailTable.get(tail);if(entry!==undefined){sste=entry;}else{sste=[];tailTable.set(tail,sste);}sste.push(child);}}child.insertSubstring(name,substart+1,id,tailTable);}}search(name,tailTable){const results=new Set();this.searchSubstringPrefix(name,0,results);if(results.size=3){const levParams=name.length>=6?new Lev2TParametricDescription(name.length):new Lev1TParametricDescription(name.length);this.searchLev(name,0,levParams,results);const tail=name.substring(0,3);const list=tailTable.get(tail);if(list!==undefined){for(const entry of list){entry.searchSubstringPrefix(name,3,results);}}}return[...results];}searchSubstringPrefix(name,substart,results){const l=name.length;if(substart===l){for(const match of this.matches){results.add(match);}let unprocessedChildren=[];for(const child of this.children){if(child){unprocessedChildren.push(child);}}let nextSet=[];while(unprocessedChildren.length!==0){const next=unprocessedChildren.pop();for(const child of next.children){if(child){nextSet.push(child);}}for(const match of next.matches){results.add(match);}if(unprocessedChildren.length===0){const tmp=unprocessedChildren;unprocessedChildren=nextSet;nextSet=tmp;}}}else{const sb=name.charCodeAt(substart);if(this.children[sb]!==undefined){this.children[sb].searchSubstringPrefix(name,substart+1,results);}}}searchLev(name,substart,levParams,results){const stack=[[this,0]];const n=levParams.n;while(stack.length!==0){const[trie,levState]=stack.pop();for(const[charCode,child]of trie.children.entries()){if(!child){continue;}const levPos=levParams.getPosition(levState);const vector=levParams.getVector(name,charCode,levPos,Math.min(name.length,levPos+(2*n)+1),);const newLevState=levParams.transition(levState,levPos,vector,);if(newLevState>=0){stack.push([child,newLevState]);if(levParams.isAccept(newLevState)){for(const match of child.matches){results.add(match);}}}}}}}class DocSearch{constructor(rawSearchIndex,rootPath,searchState){this.searchIndexDeprecated=new Map();this.searchIndexEmptyDesc=new Map();this.functionTypeFingerprint=new Uint32Array(0);this.typeNameIdMap=new Map();this.assocTypeIdNameMap=new Map();this.ALIASES=new Map();this.FOUND_ALIASES=new Set();this.rootPath=rootPath;this.searchState=searchState;this.typeNameIdOfArray=this.buildTypeMapIndex("array");this.typeNameIdOfSlice=this.buildTypeMapIndex("slice");this.typeNameIdOfArrayOrSlice=this.buildTypeMapIndex("[]");this.typeNameIdOfTuple=this.buildTypeMapIndex("tuple");this.typeNameIdOfUnit=this.buildTypeMapIndex("unit");this.typeNameIdOfTupleOrUnit=this.buildTypeMapIndex("()");this.typeNameIdOfFn=this.buildTypeMapIndex("fn");this.typeNameIdOfFnMut=this.buildTypeMapIndex("fnmut");this.typeNameIdOfFnOnce=this.buildTypeMapIndex("fnonce");this.typeNameIdOfHof=this.buildTypeMapIndex("->");this.typeNameIdOfOutput=this.buildTypeMapIndex("output",true);this.typeNameIdOfReference=this.buildTypeMapIndex("reference");this.EMPTY_BINDINGS_MAP=new Map();this.EMPTY_GENERICS_ARRAY=[];this.TYPES_POOL=new Map();this.nameTrie=new NameTrie();this.tailTable=new Map();this.searchIndex=this.buildIndex(rawSearchIndex);}buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null;}const obj=this.typeNameIdMap.get(name);if(obj!==undefined){obj.assocOnly=!!(isAssocType&&obj.assocOnly);return obj.id;}else{const id=this.typeNameIdMap.size;this.typeNameIdMap.set(name,{id,assocOnly:!!isAssocType});return id;}}buildItemSearchTypeAll(types,paths,lowercasePaths){return types&&types.length>0?types.map(type=>this.buildItemSearchType(type,paths,lowercasePaths)):this.EMPTY_GENERICS_ARRAY;}buildItemSearchType(type,paths,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=this.EMPTY_GENERICS_ARRAY;bindings=this.EMPTY_BINDINGS_MAP;}else{pathIndex=type[PATH_INDEX_DATA];generics=this.buildItemSearchTypeAll(type[GENERICS_DATA],paths,lowercasePaths,);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[this.buildItemSearchType(assocType,paths,lowercasePaths,true).id,this.buildItemSearchTypeAll(constraints,paths,lowercasePaths),];}));}else{bindings=this.EMPTY_BINDINGS_MAP;}}let result;if(pathIndex<0){result={id:pathIndex,name:"",ty:TY_GENERIC,path:null,exactPath:null,generics,bindings,unboxFlag:true,};}else if(pathIndex===0){result={id:null,name:"",ty:null,path:null,exactPath:null,generics,bindings,unboxFlag:true,};}else{const item=lowercasePaths[pathIndex-1];const id=this.buildTypeMapIndex(item.name,isAssocType);if(isAssocType&&id!==null){this.assocTypeIdNameMap.set(id,paths[pathIndex-1].name);}result={id,name:paths[pathIndex-1].name,ty:item.ty,path:item.path,exactPath:item.exactPath,generics,bindings,unboxFlag:item.unboxFlag,};}const cr=this.TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics;}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break;}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v);}else if(v!==v2){ok=false;break;}}if(ok){result.bindings=cr.bindings;}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty&&cr.name===result.name&&cr.unboxFlag===result.unboxFlag){return cr;}}this.TYPES_POOL.set(result.id,result);return result;}buildFunctionTypeFingerprint(type,output){let input=type.id;if(input===this.typeNameIdOfArray||input===this.typeNameIdOfSlice){input=this.typeNameIdOfArrayOrSlice;}if(input===this.typeNameIdOfTuple||input===this.typeNameIdOfUnit){input=this.typeNameIdOfTupleOrUnit;}if(input===this.typeNameIdOfFn||input===this.typeNameIdOfFnMut||input===this.typeNameIdOfFnOnce){input=this.typeNameIdOfHof;}const hashint1=k=>{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16);};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16);};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));output[3]+=1;}for(const g of type.generics){this.buildFunctionTypeFingerprint(g,output);}const fb={id:null,ty:0,generics:this.EMPTY_GENERICS_ARRAY,bindings:this.EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;this.buildFunctionTypeFingerprint(fb,output);}}buildIndex(rawSearchIndex){const buildFunctionSearchTypeCallback=(paths,lowercasePaths)=>{const cb=functionSearchType=>{if(functionSearchType===0){return null;}const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs;let output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[this.buildItemSearchType(functionSearchType[INPUTS_DATA],paths,lowercasePaths,),];}else{inputs=this.buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],paths,lowercasePaths,);}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[this.buildItemSearchType(functionSearchType[OUTPUT_DATA],paths,lowercasePaths,),];}else{output=this.buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],paths,lowercasePaths,);}}else{output=[];}const where_clause=[];const l=functionSearchType.length;for(let i=2;i{const n=noop;return n;});let descShard={crate,shard:0,start:0,len:itemDescShardDecoder.next(),promise:null,resolve:null,};const descShardList=[descShard];this.searchIndexDeprecated.set(crate,new RoaringBitmap(crateCorpus.c));this.searchIndexEmptyDesc.set(crate,new RoaringBitmap(crateCorpus.e));let descIndex=0;let lastParamNames=[];let normalizedName=crate.indexOf("_")===-1?crate:crate.replace(/_/g,"");const crateRow={crate,ty:3,name:crate,path:"",descShard,descIndex,exactPath:"",desc:crateCorpus.doc,parent:undefined,type:null,paramNames:lastParamNames,id,word:crate,normalizedName,bitIndex:0,implDisambiguator:null,};this.nameTrie.insert(normalizedName,id,this.tailTable);id+=1;searchIndex.push(crateRow);currentIndex+=1;if(!this.searchIndexEmptyDesc.get(crate).contains(0)){descIndex+=1;}const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemReexports=new Map(crateCorpus.r);const itemParentIdxDecoder=new VlqHexDecoder(crateCorpus.i,noop=>noop);const implDisambiguator=new Map(crateCorpus.b);const rawPaths=crateCorpus.p;const aliases=crateCorpus.a;const itemParamNames=new Map(crateCorpus.P);const lowercasePaths=[];const paths=[];const itemFunctionDecoder=new VlqHexDecoder(crateCorpus.f,buildFunctionSearchTypeCallback(paths,lowercasePaths),);let len=rawPaths.length;let lastPath=undef2null(itemPaths.get(0));for(let i=0;i{if(elem.length>idx&&elem[idx]!==undefined){const p=itemPaths.get(elem[idx]);if(p!==undefined){return p;}return if_not_found;}return if_null;};const path=elemPath(2,lastPath,null);const exactPath=elemPath(3,path,path);const unboxFlag=elem.length>4&&!!elem[4];lowercasePaths.push({ty,name:name.toLowerCase(),path,exactPath,unboxFlag});paths[i]={ty,name,path,exactPath,unboxFlag};}lastPath="";len=itemTypes.length;let lastName="";let lastWord="";for(let i=0;i=descShard.len&&!this.searchIndexEmptyDesc.get(crate).contains(bitIndex)){descShard={crate,shard:descShard.shard+1,start:descShard.start+descShard.len,len:itemDescShardDecoder.next(),promise:null,resolve:null,};descIndex=0;descShardList.push(descShard);}const name=itemNames[i]===""?lastName:itemNames[i];const word=itemNames[i]===""?lastWord:itemNames[i].toLowerCase();const pathU=itemPaths.get(i);const path=pathU!==undefined?pathU:lastPath;const paramNameString=itemParamNames.get(i);const paramNames=paramNameString!==undefined?paramNameString.split(","):lastParamNames;const type=itemFunctionDecoder.next();if(type!==null){if(type){const fp=this.functionTypeFingerprint.subarray(id*4,(id+1)*4);for(const t of type.inputs){this.buildFunctionTypeFingerprint(t,fp);}for(const t of type.output){this.buildFunctionTypeFingerprint(t,fp);}for(const w of type.where_clause){for(const t of w){this.buildFunctionTypeFingerprint(t,fp);}}}}const itemParentIdx=itemParentIdxDecoder.next();normalizedName=word.indexOf("_")===-1?word:word.replace(/_/g,"");const row={crate,ty:itemTypes.charCodeAt(i)-65,name,path,descShard,descIndex,exactPath:itemReexports.has(i)?itemPaths.get(itemReexports.get(i)):path,parent:itemParentIdx>0?paths[itemParentIdx-1]:undefined,type,paramNames,id,word,normalizedName,bitIndex,implDisambiguator:undef2null(implDisambiguator.get(i)),};this.nameTrie.insert(normalizedName,id,this.tailTable);id+=1;searchIndex.push(row);lastPath=row.path;lastParamNames=row.paramNames;if(!this.searchIndexEmptyDesc.get(crate).contains(bitIndex)){descIndex+=1;}lastName=name;lastWord=word;}if(aliases){allAliases.push([crate,aliases,currentIndex]);}currentIndex+=itemTypes.length;this.searchState.descShards.set(crate,descShardList);}for(const[crate,aliases,index]of allAliases){for(const[alias_name,alias_refs]of Object.entries(aliases)){if(!this.ALIASES.has(crate)){this.ALIASES.set(crate,new Map());}const word=alias_name.toLowerCase();const crate_alias_map=this.ALIASES.get(crate);if(!crate_alias_map.has(word)){crate_alias_map.set(word,[]);}const aliases_map=crate_alias_map.get(word);const normalizedName=word.indexOf("_")===-1?word:word.replace(/_/g,"");for(const alias of alias_refs){const originalIndex=alias+index;const original=searchIndex[originalIndex];const row={crate,name:alias_name,normalizedName,is_alias:true,ty:original.ty,type:original.type,paramNames:[],word,id,parent:undefined,original,path:"",implDisambiguator:original.implDisambiguator,descShard:original.descShard,descIndex:original.descIndex,bitIndex:original.bitIndex,};aliases_map.push(row);this.nameTrie.insert(normalizedName,id,this.tailTable);id+=1;searchIndex.push(row);}}}this.TYPES_POOL=new Map();return searchIndex;}static parseQuery(userQuery){function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename];}return index;}function convertTypeFilterOnElem(elem){if(typeof elem.typeFilter==="string"){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant";}elem.typeFilter=itemTypeFromName(typeFilter);}else{elem.typeFilter=NO_TYPE_FILTER;}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2);}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint);}}}function newParsedQuery(userQuery){return{userQuery,elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,hasReturnArrow:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),};}function parseInput(query,parserState){let foundStopChar=true;while(parserState.pos"){if(isReturnArrow(parserState)){query.hasReturnArrow=true;break;}throw["Unexpected ",c," (did you mean ","->","?)"];}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]];}throw["Unexpected ",c];}else if(c===" "){skipWhitespace(parserState);continue;}if(!foundStopChar){let extra=[];if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"];}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"];}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,];}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,];}const before=query.elems.length;getFilteredNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1;}foundStopChar=false;}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",];}while(parserState.postypeof elem==="string")){query.error=err;}else{throw err;}return query;}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1;}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query;}async execQuery(origParsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();const parsedQuery=origParsedQuery;const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);this.FOUND_ALIASES.clear();const genericSymbols=new Map();const convertNameToId=(elem,isAssocType)=>{const loweredName=elem.pathLast.toLowerCase();if(this.typeNameIdMap.has(loweredName)&&(isAssocType||!this.typeNameIdMap.get(loweredName).assocOnly)){elem.id=this.typeNameIdMap.get(loweredName).id;}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of this.typeNameIdMap){const dist=Math.min(editDistance(name,loweredName,maxEditDistance),editDistance(name,elem.normalizedPathLast,maxEditDistance),);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue;}match=id;matchDist=dist;matchName=name;}}if(match!==null){parsedQuery.correction=matchName;}elem.id=match;}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){const id=genericSymbols.get(elem.normalizedPathLast);if(id!==undefined){elem.id=id;}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.normalizedPathLast,elem.id);}if(elem.typeFilter===-1&&elem.normalizedPathLast.length>=3){const maxPartDistance=Math.floor(elem.normalizedPathLast.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of this.typeNameIdMap.keys()){const dist=editDistance(name,elem.normalizedPathLast,maxPartDistance,);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue;}matchDist=dist;matchName=name;}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName;}}elem.typeFilter=TY_GENERIC;}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",];}for(const elem2 of elem.generics){convertNameToId(elem2);}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!this.typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[0,[]];}for(const elem2 of constraints){convertNameToId(elem2,false);}return[this.typeNameIdMap.get(name).id,constraints];}),);};for(const elem of parsedQuery.elems){convertNameToId(elem,false);this.buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint);}for(const elem of parsedQuery.returned){convertNameToId(elem,false);this.buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint);}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,};}const buildHrefAndPath=item=>{let displayPath;let href;if(item.is_alias){this.FOUND_ALIASES.add(item.word);item=item.original;}const type=itemTypes[item.ty];const name=item.name;let path=item.path;let exactPath=item.exactPath;if(type==="mod"){displayPath=path+"::";href=this.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html";}else if(type==="import"){displayPath=item.path+"::";href=this.rootPath+item.path.replace(/::/g,"/")+"/index.html#reexport."+name;}else if(type==="primitive"||type==="keyword"){displayPath="";exactPath="";href=this.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html";}else if(type==="externcrate"){displayPath="";href=this.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;exactPath=`${myparent.exactPath}::${myparent.name}`;if(parentType==="primitive"){displayPath=myparent.name+"::";exactPath=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+"::";}if(item.implDisambiguator!==null){anchor=item.implDisambiguator+"/"+anchor;}href=this.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html#"+anchor;}else{displayPath=item.path+"::";href=this.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html";}return[displayPath,href,`${exactPath}::${name}`];};function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6);}return tmp;}const transformResults=(results,typeInfo)=>{const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const res=buildHrefAndPath(this.searchIndex[result.id]);const obj=Object.assign({parent:result.parent,type:result.type,dist:result.dist,path_dist:result.path_dist,index:result.index,desc:result.desc,item:result.item,displayPath:pathSplitter(res[0]),fullPath:"",href:"",displayTypeSignature:null,},this.searchIndex[result.id]);obj.fullPath=res[2]+"|"+obj.ty;if(duplicates.has(obj.fullPath)){continue;}if(obj.ty===TY_IMPORT&&duplicates.has(res[2])){continue;}if(duplicates.has(res[2]+"|"+TY_IMPORT)){continue;}duplicates.add(obj.fullPath);duplicates.add(res[2]);if(typeInfo!==null){obj.displayTypeSignature=this.formatDisplayTypeSignature(obj,typeInfo);}obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break;}}}return out;};this.formatDisplayTypeSignature=async(obj,typeInfo)=>{const objType=obj.type;if(!objType){return{type:[],mappedNames:new Map(),whereClause:new Map()};}let fnInputs=null;let fnOutput=null;let mgens=null;if(typeInfo!=="elems"&&typeInfo!=="returned"){fnInputs=unifyFunctionTypes(objType.inputs,parsedQuery.elems,objType.where_clause,null,mgensScratch=>{fnOutput=unifyFunctionTypes(objType.output,parsedQuery.returned,objType.where_clause,mgensScratch,mgensOut=>{mgens=mgensOut;return true;},0,);return!!fnOutput;},0,);}else{const arr=typeInfo==="elems"?objType.inputs:objType.output;const highlighted=unifyFunctionTypes(arr,parsedQuery.elems,objType.where_clause,null,mgensOut=>{mgens=mgensOut;return true;},0,);if(typeInfo==="elems"){fnInputs=highlighted;}else{fnOutput=highlighted;}}if(!fnInputs){fnInputs=objType.inputs;}if(!fnOutput){fnOutput=objType.output;}const mappedNames=new Map();const whereClause=new Map();const fnParamNames=obj.paramNames||[];const queryParamNames=[];const remapQuery=queryElem=>{if(queryElem.id!==null&&queryElem.id<0){queryParamNames[-1-queryElem.id]=queryElem.name;}if(queryElem.generics.length>0){queryElem.generics.forEach(remapQuery);}if(queryElem.bindings.size>0){[...queryElem.bindings.values()].flat().forEach(remapQuery);}};parsedQuery.elems.forEach(remapQuery);parsedQuery.returned.forEach(remapQuery);const pushText=(fnType,result)=>{if(!!(result.length%2)===!!fnType.highlighted){result.push("");}else if(result.length===0&&!!fnType.highlighted){result.push("");result.push("");}result[result.length-1]+=fnType.name;};const writeHof=(fnType,result)=>{const hofOutput=fnType.bindings.get(this.typeNameIdOfOutput)||[];const hofInputs=fnType.generics;pushText(fnType,result);pushText({name:" (",highlighted:false},result);let needsComma=false;for(const fnType of hofInputs){if(needsComma){pushText({name:", ",highlighted:false},result);}needsComma=true;writeFn(fnType,result);}pushText({name:hofOutput.length===0?")":") -> ",highlighted:false,},result);if(hofOutput.length>1){pushText({name:"(",highlighted:false},result);}needsComma=false;for(const fnType of hofOutput){if(needsComma){pushText({name:", ",highlighted:false},result);}needsComma=true;writeFn(fnType,result);}if(hofOutput.length>1){pushText({name:")",highlighted:false},result);}};const writeSpecialPrimitive=(fnType,result)=>{if(fnType.id===this.typeNameIdOfArray||fnType.id===this.typeNameIdOfSlice||fnType.id===this.typeNameIdOfTuple||fnType.id===this.typeNameIdOfUnit){const[ob,sb]=fnType.id===this.typeNameIdOfArray||fnType.id===this.typeNameIdOfSlice?["[","]"]:["(",")"];pushText({name:ob,highlighted:fnType.highlighted},result);onEachBtwn(fnType.generics,nested=>writeFn(nested,result),()=>pushText({name:", ",highlighted:false},result),);pushText({name:sb,highlighted:fnType.highlighted},result);return true;}else if(fnType.id===this.typeNameIdOfReference){pushText({name:"&",highlighted:fnType.highlighted},result);let prevHighlighted=false;onEachBtwn(fnType.generics,value=>{prevHighlighted=!!value.highlighted;writeFn(value,result);},value=>pushText({name:" ",highlighted:prevHighlighted&&value.highlighted,},result),);return true;}else if(fnType.id===this.typeNameIdOfFn){writeHof(fnType,result);return true;}return false;};const writeFn=(fnType,result)=>{if(fnType.id!==null&&fnType.id<0){if(fnParamNames[-1-fnType.id]===""){const generics=fnType.generics.length>0?fnType.generics:objType.where_clause[-1-fnType.id];for(const nested of generics){writeFn(nested,result);}return;}else if(mgens){for(const[queryId,fnId]of mgens){if(fnId===fnType.id){mappedNames.set(queryParamNames[-1-queryId],fnParamNames[-1-fnType.id],);}}}pushText({name:fnParamNames[-1-fnType.id],highlighted:!!fnType.highlighted,},result);const where=[];onEachBtwn(fnType.generics,nested=>writeFn(nested,where),()=>pushText({name:" + ",highlighted:false},where),);if(where.length>0){whereClause.set(fnParamNames[-1-fnType.id],where);}}else{if(fnType.ty===TY_PRIMITIVE){if(writeSpecialPrimitive(fnType,result)){return;}}else if(fnType.ty===TY_TRAIT&&(fnType.id===this.typeNameIdOfFn||fnType.id===this.typeNameIdOfFnMut||fnType.id===this.typeNameIdOfFnOnce)){writeHof(fnType,result);return;}pushText(fnType,result);let hasBindings=false;if(fnType.bindings.size>0){onEachBtwn(fnType.bindings,([key,values])=>{const name=this.assocTypeIdNameMap.get(key);if(values.length===1&&values[0].id<0&&`${fnType.name}::${name}`===fnParamNames[-1-values[0].id]){for(const value of values){writeFn(value,[]);}return true;}if(!hasBindings){hasBindings=true;pushText({name:"<",highlighted:false},result);}pushText({name,highlighted:false},result);pushText({name:values.length!==1?"=(":"=",highlighted:false,},result);onEachBtwn(values||[],value=>writeFn(value,result),()=>pushText({name:" + ",highlighted:false},result),);if(values.length!==1){pushText({name:")",highlighted:false},result);}},()=>pushText({name:", ",highlighted:false},result),);}if(fnType.generics.length>0){pushText({name:hasBindings?", ":"<",highlighted:false},result);}onEachBtwn(fnType.generics,value=>writeFn(value,result),()=>pushText({name:", ",highlighted:false},result),);if(hasBindings||fnType.generics.length>0){pushText({name:">",highlighted:false},result);}}};const type=[];onEachBtwn(fnInputs,fnType=>writeFn(fnType,type),()=>pushText({name:", ",highlighted:false},type),);pushText({name:" -> ",highlighted:false},type);onEachBtwn(fnOutput,fnType=>writeFn(fnType,type),()=>pushText({name:", ",highlighted:false},type),);return{type,mappedNames,whereClause};};const sortResults=async(results,typeInfo,preferredCrate)=>{const userQuery=parsedQuery.userQuery;const normalizedUserQuery=parsedQuery.userQuery.toLowerCase();const isMixedCase=normalizedUserQuery!==userQuery;const result_list=[];const isReturnTypeQuery=parsedQuery.elems.length===0||typeInfo==="returned";for(const result of results.values()){result.item=this.searchIndex[result.id];result.word=this.searchIndex[result.id].word;if(isReturnTypeQuery){const resultItemType=result.item&&result.item.type;if(!resultItemType){continue;}const inputs=resultItemType.inputs;const where_clause=resultItemType.where_clause;if(containsTypeFromQuery(inputs,where_clause)){result.path_dist*=100;result.dist*=100;}}result_list.push(result);}result_list.sort((aaa,bbb)=>{let a;let b;if(isMixedCase){a=Number(aaa.item.name!==userQuery);b=Number(bbb.item.name!==userQuery);if(a!==b){return a-b;}}a=Number(aaa.word!==normalizedUserQuery);b=Number(bbb.word!==normalizedUserQuery);if(a!==b){return a-b;}a=Number(aaa.index<0);b=Number(bbb.index<0);if(a!==b){return a-b;}if(parsedQuery.hasReturnArrow){a=Number(!isFnLikeTy(aaa.item.ty));b=Number(!isFnLikeTy(bbb.item.ty));if(a!==b){return a-b;}}a=Number(aaa.path_dist);b=Number(bbb.path_dist);if(a!==b){return a-b;}a=Number(aaa.index);b=Number(bbb.index);if(a!==b){return a-b;}a=Number(aaa.dist);b=Number(bbb.dist);if(a!==b){return a-b;}a=Number(this.searchIndexDeprecated.get(aaa.item.crate).contains(aaa.item.bitIndex),);b=Number(this.searchIndexDeprecated.get(bbb.item.crate).contains(bbb.item.bitIndex),);if(a!==b){return a-b;}a=Number(aaa.item.crate!==preferredCrate);b=Number(bbb.item.crate!==preferredCrate);if(a!==b){return a-b;}a=Number(aaa.word.length);b=Number(bbb.word.length);if(a!==b){return a-b;}let aw=aaa.word;let bw=bbb.word;if(aw!==bw){return(aw>bw?+1:-1);}a=Number(this.searchIndexEmptyDesc.get(aaa.item.crate).contains(aaa.item.bitIndex),);b=Number(this.searchIndexEmptyDesc.get(bbb.item.crate).contains(bbb.item.bitIndex),);if(a!==b){return a-b;}a=Number(aaa.item.ty);b=Number(bbb.item.ty);if(a!==b){return a-b;}aw=aaa.item.path;bw=bbb.item.path;if(aw!==bw){return(aw>bw?+1:-1);}return 0;});return transformResults(result_list,typeInfo);};function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return null;}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return solutionCb(mgens)?fnTypesIn:null;}if(!fnTypesIn||fnTypesIn.length===0){return null;}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const[i,fnType]of fnTypesIn.entries()){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue;}if(fnType.id!==null&&fnType.id<0&&queryElem.id!==null&&queryElem.id<0){if(mgens&&mgens.has(queryElem.id)&&mgens.get(queryElem.id)!==fnType.id){continue;}const mgensScratch=new Map(mgens);mgensScratch.set(queryElem.id,fnType.id);if(!solutionCb||solutionCb(mgensScratch)){const highlighted=[...fnTypesIn];highlighted[i]=Object.assign({highlighted:true,},fnType,{generics:whereClause[-1-fnType.id],});return highlighted;}}else if(solutionCb(mgens?new Map(mgens):null)){const highlighted=[...fnTypesIn];highlighted[i]=Object.assign({highlighted:true,},fnType,{generics:unifyGenericTypes(fnType.generics,queryElem.generics,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth,)||fnType.generics,});return highlighted;}}for(const[i,fnType]of fnTypesIn.entries()){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue;}if(fnType.id<0){const highlightedGenerics=unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgens,solutionCb,unboxingDepth+1,);if(highlightedGenerics){const highlighted=[...fnTypesIn];highlighted[i]=Object.assign({highlighted:true,},fnType,{generics:highlightedGenerics,});return highlighted;}}else{const highlightedGenerics=unifyFunctionTypes([...Array.from(fnType.bindings.values()).flat(),...fnType.generics],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth+1,);if(highlightedGenerics){const highlighted=[...fnTypesIn];highlighted[i]=Object.assign({},fnType,{generics:highlightedGenerics,bindings:new Map([...fnType.bindings.entries()].map(([k,v])=>{return[k,highlightedGenerics.splice(0,v.length)];})),});return highlighted;}}}return null;}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue;}let mgensScratch;if(fnType.id!==null&&queryElem.id!==null&&fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(queryElem.id)&&mgensScratch.get(queryElem.id)!==fnType.id){continue;}mgensScratch.set(queryElem.id,fnType.id);}else{mgensScratch=mgens;}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast);}let unifiedGenerics=[];let unifiedGenericsMgens=null;const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return solutionCb(mgensScratch);}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth,);if(!solution){return false;}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){unifiedGenerics=unifyGenericTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth,);if(unifiedGenerics!==null){unifiedGenericsMgens=simplifiedMgens;return true;}}return false;},unboxingDepth,);if(passesUnification){passesUnification.length=fl;passesUnification[flast]=passesUnification[i];passesUnification[i]=Object.assign({},fnType,{highlighted:true,generics:unifiedGenerics,bindings:new Map([...fnType.bindings.entries()].map(([k,v])=>{return[k,queryElem.bindings.has(k)?unifyFunctionTypes(v,queryElem.bindings.get(k),whereClause,unifiedGenericsMgens,solutionCb,unboxingDepth,):unifiedGenerics.splice(0,v.length)];})),});return passesUnification;}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl;}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue;}const generics=fnType.id!==null&&fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...bindings,...generics),queryElems,whereClause,mgens,solutionCb,unboxingDepth+1,);if(passesUnification){const highlightedGenerics=passesUnification.slice(i,i+generics.length+bindings.length,);const highlightedFnType=Object.assign({},fnType,{generics:highlightedGenerics,bindings:new Map([...fnType.bindings.entries()].map(([k,v])=>{return[k,highlightedGenerics.splice(0,v.length)];})),});return passesUnification.toSpliced(i,generics.length+bindings.length,highlightedFnType,);}}return null;}function unifyGenericTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return null;}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return solutionCb(mgens)?fnTypesIn:null;}if(!fnTypesIn||fnTypesIn.length===0){return null;}const fnType=fnTypesIn[0];const queryElem=queryElems[0];if(unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){if(fnType.id!==null&&fnType.id<0&&queryElem.id!==null&&queryElem.id<0){if(!mgens||!mgens.has(queryElem.id)||mgens.get(queryElem.id)===fnType.id){const mgensScratch=new Map(mgens);mgensScratch.set(queryElem.id,fnType.id);const fnTypesRemaining=unifyGenericTypes(fnTypesIn.slice(1),queryElems.slice(1),whereClause,mgensScratch,solutionCb,unboxingDepth,);if(fnTypesRemaining){const highlighted=[fnType,...fnTypesRemaining];highlighted[0]=Object.assign({highlighted:true,},fnType,{generics:whereClause[-1-fnType.id],});return highlighted;}}}else{let unifiedGenerics;const fnTypesRemaining=unifyGenericTypes(fnTypesIn.slice(1),queryElems.slice(1),whereClause,mgens,mgensScratch=>{const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth,);if(!solution){return false;}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){unifiedGenerics=unifyGenericTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth,);if(unifiedGenerics!==null){return true;}}},unboxingDepth,);if(fnTypesRemaining){const highlighted=[fnType,...fnTypesRemaining];highlighted[0]=Object.assign({highlighted:true,},fnType,{generics:unifiedGenerics||fnType.generics,});return highlighted;}}}if(unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){let highlightedRemaining;if(fnType.id!==null&&fnType.id<0){const highlightedGenerics=unifyFunctionTypes(whereClause[(-fnType.id)-1],[queryElem],whereClause,mgens,mgensScratch=>{const hl=unifyGenericTypes(fnTypesIn.slice(1),queryElems.slice(1),whereClause,mgensScratch,solutionCb,unboxingDepth,);if(hl){highlightedRemaining=hl;}return hl;},unboxingDepth+1,);if(highlightedGenerics){return[Object.assign({highlighted:true,},fnType,{generics:highlightedGenerics,}),...highlightedRemaining];}}else{const highlightedGenerics=unifyGenericTypes([...Array.from(fnType.bindings.values()).flat(),...fnType.generics,],[queryElem],whereClause,mgens,mgensScratch=>{const hl=unifyGenericTypes(fnTypesIn.slice(1),queryElems.slice(1),whereClause,mgensScratch,solutionCb,unboxingDepth,);if(hl){highlightedRemaining=hl;}return hl;},unboxingDepth+1,);if(highlightedGenerics){return[Object.assign({},fnType,{generics:highlightedGenerics,bindings:new Map([...fnType.bindings.entries()].map(([k,v])=>{return[k,highlightedGenerics.splice(0,v.length)];})),}),...highlightedRemaining];}}}return null;}const unifyFunctionTypeIsMatchCandidate=(fnType,queryElem,mgensIn)=>{if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false;}if(fnType.id!==null&&fnType.id<0&&queryElem.id!==null&&queryElem.id<0){if(mgensIn&&mgensIn.has(queryElem.id)&&mgensIn.get(queryElem.id)!==fnType.id){return false;}return true;}else{if(queryElem.id===this.typeNameIdOfArrayOrSlice&&(fnType.id===this.typeNameIdOfSlice||fnType.id===this.typeNameIdOfArray)){}else if(queryElem.id===this.typeNameIdOfTupleOrUnit&&(fnType.id===this.typeNameIdOfTuple||fnType.id===this.typeNameIdOfUnit)){}else if(queryElem.id===this.typeNameIdOfHof&&(fnType.id===this.typeNameIdOfFn||fnType.id===this.typeNameIdOfFnMut||fnType.id===this.typeNameIdOfFnOnce)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false;}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false;}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false;}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break;}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false;}if(!fnType.bindings.has(name)){return false;}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false;},unboxingDepth,);return newSolutions;});}if(mgensSolutionSet.length===0){return false;}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[];}else{return constraints;}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...binds,...simplifiedGenerics];}else{simplifiedGenerics=binds;}return{simplifiedGenerics,mgens:mgensSolutionSet};}return{simplifiedGenerics,mgens:[mgensIn]};}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false;}if(fnType.id!==null&&fnType.id<0){if(!whereClause){return false;}return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgens,unboxingDepth,);}else if(fnType.unboxFlag&&(fnType.generics.length>0||fnType.bindings.size>0)){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens,unboxingDepth,);}return false;}function containsTypeFromQuery(list,where_clause){if(!list)return false;for(const ty of parsedQuery.returned){if(ty.id!==null&&ty.id<0){continue;}if(checkIfInList(list,ty,where_clause,null,0)){return true;}}for(const ty of parsedQuery.elems){if(ty.id!==null&&ty.id<0){continue;}if(checkIfInList(list,ty,where_clause,null,0)){return true;}}return false;}function checkIfInList(list,elem,whereClause,mgens,unboxingDepth){for(const entry of list){if(checkType(entry,elem,whereClause,mgens,unboxingDepth)){return true;}}return false;}const checkType=(row,elem,whereClause,mgens,unboxingDepth)=>{if(unboxingDepth>=UNBOXING_LIMIT){return false;}if(row.id!==null&&elem.id!==null&&row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&row.generics.length===0&&elem.generics.length===0&&row.bindings.size===0&&elem.bindings.size===0&&elem.id!==this.typeNameIdOfArrayOrSlice&&elem.id!==this.typeNameIdOfHof&&elem.id!==this.typeNameIdOfTupleOrUnit){return row.id===elem.id&&typePassesFilter(elem.typeFilter,row.ty);}else{return unifyFunctionTypes([row],[elem],whereClause,mgens,()=>true,unboxingDepth,);}};const checkTypeMgensForConflict=mgens=>{if(!mgens){return true;}const fnTypes=new Set();for(const[_qid,fid]of mgens){if(fnTypes.has(fid)){return false;}fnTypes.add(fid);}return true;};function checkPath(contains,ty){if(contains.length===0){return 0;}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3,);let ret_dist=maxPathEditDistance+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;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter;}dist_total+=dist;}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength));}return ret_dist>maxPathEditDistance?null:ret_dist;}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;}const handleAliases=async(ret,query,filterCrates,currentCrate)=>{const lowerQuery=query.toLowerCase();if(this.FOUND_ALIASES.has(lowerQuery)){return;}this.FOUND_ALIASES.add(lowerQuery);const aliases=[];const crateAliases=[];if(filterCrates!==null){if(this.ALIASES.has(filterCrates)&&this.ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=this.ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(alias);}}}else{for(const[crate,crateAliasesIndex]of this.ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(alias);}}}}const sortFunc=(aaa,bbb)=>{if(aaa.original.path{alias={...alias};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();}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc);};function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result===undefined||result.dontValidate||result.dist<=dist){return;}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,});}}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return;}const rowType=row.type;if(!rowType){return;}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint,);if(tfpDist===null){return;}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return;}if(!unifyFunctionTypes(rowType.inputs,parsedQuery.elems,rowType.where_clause,null,mgens=>{return unifyFunctionTypes(rowType.output,parsedQuery.returned,rowType.where_clause,mgens,checkTypeMgensForConflict,0,);},0,)){return;}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE);}const compareTypeFingerprints=(fullId,queryFingerprint)=>{const fh0=this.functionTypeFingerprint[fullId*4];const fh1=this.functionTypeFingerprint[(fullId*4)+1];const fh2=this.functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null;}return this.functionTypeFingerprint[(fullId*4)+3];};const innerRunQuery=()=>{if(parsedQuery.foundElems===1&&!parsedQuery.hasReturnArrow){const elem=parsedQuery.elems[0];const handleNameSearch=id=>{const row=this.searchIndex[id];if(!typePassesFilter(elem.typeFilter,row.ty)||(filterCrates!==null&&row.crate!==filterCrates)){return;}let pathDist=0;if(elem.fullPath.length>1){const maybePathDist=checkPath(elem.pathWithoutLast,row);if(maybePathDist===null){return;}pathDist=maybePathDist;}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,row.id,id,0,0,pathDist,0);}}else{addIntoResults(results_others,row.id,id,row.normalizedName.indexOf(elem.normalizedPathLast),editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance,),pathDist,maxEditDistance,);}};if(elem.normalizedPathLast!==""){const last=elem.normalizedPathLast;for(const id of this.nameTrie.search(last,this.tailTable)){handleNameSearch(id);}}const length=this.searchIndex.length;for(let i=0,nSearchIndex=length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return+ag-+bg;}const ai=a.id!==null&&a.id>0;const bi=b.id!==null&&b.id>0;return+ai-+bi;};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=this.searchIndex.length;i{const descs=await Promise.all(list.map(result=>{return this.searchIndexEmptyDesc.get(result.crate).contains(result.bitIndex)?"":this.searchState.loadDesc(result);}));for(const[i,result]of list.entries()){result.desc=descs[i];}}));if(parsedQuery.error!==null&&ret.others.length!==0){ret.query.error=null;}return ret;}}let rawSearchIndex;let docSearch;const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];let currentResults;function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true;}else{removeClass(elem,"selected");}iter+=1;});const isTypeSearch=(nb>0||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;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden");}else{addClass(correctionsElem[0],"hidden");}}else if(nb!==0){printTab(0);}}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"&&window.searchIndex.has(elem.value)){return elem.value;}return null;}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("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus();}}async function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement(array.length===0&&query.error===null?"div":"ul",);if(array.length>0){output.className="search-results "+extraClass;const lis=Promise.all(array.map(async item=>{const name=item.is_alias?item.original.name:item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("span");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
    \ +${item.name} - see \ +
    `;}resultName.insertAdjacentHTML("beforeend",`
    ${alias}\ +${item.displayPath}${name}\ +
    `);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);if(item.displayTypeSignature){const{type,mappedNames,whereClause}=await item.displayTypeSignature;const displayType=document.createElement("div");type.forEach((value,index)=>{if(index%2!==0){const highlight=document.createElement("strong");highlight.appendChild(document.createTextNode(value));displayType.appendChild(highlight);}else{displayType.appendChild(document.createTextNode(value));}});if(mappedNames.size>0||whereClause.size>0){let addWhereLineFn=()=>{const line=document.createElement("div");line.className="where";line.appendChild(document.createTextNode("where"));displayType.appendChild(line);addWhereLineFn=()=>{};};for(const[qname,name]of mappedNames){if(name===qname){continue;}addWhereLineFn();const line=document.createElement("div");line.className="where";line.appendChild(document.createTextNode(` ${qname} matches `));const lineStrong=document.createElement("strong");lineStrong.appendChild(document.createTextNode(name));line.appendChild(lineStrong);displayType.appendChild(line);}for(const[name,innerType]of whereClause){if(innerType.length<=1){continue;}addWhereLineFn();const line=document.createElement("div");line.className="where";line.appendChild(document.createTextNode(` ${name}: `));innerType.forEach((value,index)=>{if(index%2!==0){const highlight=document.createElement("strong");highlight.appendChild(document.createTextNode(value));line.appendChild(highlight);}else{line.appendChild(document.createTextNode(value));}});displayType.appendChild(line);}}displayType.className="type-signature";link.appendChild(displayType);}link.appendChild(description);return link;}));lis.then(lis=>{for(const li of lis){output.appendChild(li);}});}else if(query.error===null){const dlroChannel=`https://doc.rust-lang.org/${getVar("channel")}`;output.className="search-failed"+extraClass;output.innerHTML="No results :(
    "+"Try on DuckDuckGo?

    "+"Or try looking in one of these:";}return output;}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return"";}return"";}async 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")){window.onunload=()=>{};searchState.removeQueryParameters();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=DocSearch.parseQuery(searchState.input.value);}currentResults=results.query.userQuery;let currentTab=searchState.currentTab;if((currentTab===0&&results.others.length===0)||(currentTab===1&&results.in_args.length===0)||(currentTab===2&&results.returned.length===0)){if(results.others.length!==0){currentTab=0;}else if(results.in_args.length){currentTab=1;}else if(results.returned.length){currentTab=2;}}let crates="";if(rawSearchIndex.size>1){crates="
    in 
    "+"
    ";}let output=`
    \ +

    Results

    ${crates}
    `;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`;}else{error[index]=value;}});output+=`

    Query parser error: "${error.join("")}".

    `;output+="
    "+makeTabHeader(0,"In Names",results.others.length)+"
    ";currentTab=0;}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
    "+makeTabHeader(0,"In Names",results.others.length)+makeTabHeader(1,"In Parameters",results.in_args.length)+makeTabHeader(2,"In Return Types",results.returned.length)+"
    ";}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,results.others.length)+"
    ";currentTab=0;}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

    "+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

    `;}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

    "+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

    `;}const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,currentTab===0),addTab(results.in_args,results.query,currentTab===1),addTab(results.returned,results.query,currentTab===2),]);const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others);resultsElem.appendChild(ret_in_args);resultsElem.appendChild(ret_returned);search.innerHTML=output;if(searchState.rustdocToolbar){search.querySelector(".main-heading").appendChild(searchState.rustdocToolbar);}const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate);}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").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 updateSearchHistory(url){if(!browserSupportsHistoryApi()){return;}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url);}else{history.replaceState(null,"",url);}}async function search(forced){const query=DocSearch.parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch();}return;}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"];}searchState.title="\""+query.userQuery+"\" Search - Rust";updateSearchHistory(buildUrl(query.userQuery,filterCrates));await showResults(await docSearch.execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates);}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 params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||"";}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){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",()=>{if(window.searchState.input){window.searchState.input.placeholder=window.searchState.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;e.preventDefault();search();}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 query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null));}currentResults=null;search(true);}class ParametricDescription{constructor(w,n,minErrors){this.w=w;this.n=n;this.minErrors=minErrors;}isAccept(absState){const state=Math.floor(absState/(this.w+1));const offset=absState%(this.w+1);return this.w-offset+this.minErrors[state]<=this.n;}getPosition(absState){return absState%(this.w+1);}getVector(name,charCode,pos,end){let vector=0;for(let i=pos;i>5;const bitStart=bitLoc&31;if(bitStart+bitsPerValue<=32){return((data[dataLoc]>>bitStart)&this.MASKS[bitsPerValue-1]);}else{const part=32-bitStart;return ~~(((data[dataLoc]>>bitStart)&this.MASKS[part-1])+((data[1+dataLoc]&this.MASKS[bitsPerValue-part-1])<{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=()=>{changeSetting(toggle.id,toggle.checked)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference"}}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){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":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ - `});output+=`\ -
    -
    `}else{const checked=setting["default"]===true?" checked":"";output+=`\ -
    \ - \ -
    `}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"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":"Hide persistent navigation bar","js_name":"hide-sidebar","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
    ${buildSettingsPageSections(settings)}
    `;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover"}el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display="";onEachLazy(settingsMenu.querySelectorAll("input[type='checkbox']"),el=>{const val=getSettingValue(el.id);const checked=val==="true";if(checked!==el.checked&&val!==null){el.checked=checked}})}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=event=>{event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(settingsMenu.contains(event.target)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/static.files/settings-5514c975.js b/static.files/settings-5514c975.js new file mode 100644 index 00000000..180f498f --- /dev/null +++ b/static.files/settings-5514c975.js @@ -0,0 +1,17 @@ +"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function elemContainsTarget(elem,target){if(target instanceof Node){return elem.contains(target);}else{return false;}}function changeSetting(settingName,value){if(settingName==="theme"){const useSystem=value==="system preference"?"true":"false";updateLocalStorage("use-system-theme",useSystem);}updateLocalStorage(settingName,""+value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":updateTheme();updateLightAndDark();break;case"line-numbers":if(value===true){const f=window.rustdoc_add_line_numbers_to_examples;if(f!==undefined){f();}}else{const f=window.rustdoc_remove_line_numbers_from_examples;if(f!==undefined){f();}}break;case"hide-sidebar":if(value===true){addClass(document.documentElement,"hide-sidebar");}else{removeClass(document.documentElement,"hide-sidebar");}break;case"hide-toc":if(value===true){addClass(document.documentElement,"hide-toc");}else{removeClass(document.documentElement,"hide-toc");}break;case"hide-modnav":if(value===true){addClass(document.documentElement,"hide-modnav");}else{removeClass(document.documentElement,"hide-modnav");}break;case"sans-serif-fonts":if(value===true){addClass(document.documentElement,"sans-serif");}else{removeClass(document.documentElement,"sans-serif");}break;case"word-wrap-source-code":if(value===true){addClass(document.documentElement,"word-wrap-source-code");}else{removeClass(document.documentElement,"word-wrap-source-code");}break;}}function showLightAndDark(){removeClass(document.getElementById("preferred-light-theme"),"hidden");removeClass(document.getElementById("preferred-dark-theme"),"hidden");}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme"),"hidden");addClass(document.getElementById("preferred-dark-theme"),"hidden");}function updateLightAndDark(){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||(useSystem===null&&getSettingValue("theme")===null)){showLightAndDark();}else{hideLightAndDark();}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.querySelectorAll("input[type=\"checkbox\"]"),toggle=>{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true";}toggle.onchange=()=>{changeSetting(toggle.id,toggle.checked);};});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference";}}if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value;}elem.addEventListener("change",()=>{changeSetting(elem.name,elem.value);});},);}function buildSettingsPageSections(settings){let output="";for(const setting of settings){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":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ + `;});output+=`\ +
    +
    `;}else{const checked=setting["default"]===true?" checked":"";output+=`\ +
    \ + \ +
    `;}}return output;}function buildSettingsPage(){const theme_list=getVar("themes");const theme_names=(theme_list===null?"":theme_list).split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"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":"Hide persistent navigation bar","js_name":"hide-sidebar","default":false,},{"name":"Hide table of contents","js_name":"hide-toc","default":false,},{"name":"Hide module navigation","js_name":"hide-modnav","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},{"name":"Use sans serif fonts","js_name":"sans-serif-fonts","default":false,},{"name":"Word wrap source code","js_name":"word-wrap-source-code","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
    ${buildSettingsPageSections(settings)}
    `;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover";}el.innerHTML=innerHTML;if(isSettingsPage){const mainElem=document.getElementById(MAIN_ID);if(mainElem!==null){mainElem.appendChild(el);}}else{el.setAttribute("tabindex","-1");const settingsBtn=getSettingsButton();if(settingsBtn!==null){settingsBtn.appendChild(el);}}return el;}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display="";onEachLazy(settingsMenu.querySelectorAll("input[type='checkbox']"),el=>{const val=getSettingValue(el.id);const checked=val==="true";if(checked!==el.checked&&val!==null){el.checked=checked;}});}function settingsBlurHandler(event){const helpBtn=getHelpButton();const settingsBtn=getSettingsButton();const helpUnfocused=helpBtn===null||(!helpBtn.contains(document.activeElement)&&!elemContainsTarget(helpBtn,event.relatedTarget));const settingsUnfocused=settingsBtn===null||(!settingsBtn.contains(document.activeElement)&&!elemContainsTarget(settingsBtn,event.relatedTarget));if(helpUnfocused&&settingsUnfocused){window.hidePopoverMenus();}}if(!isSettingsPage){const settingsButton=nonnull(getSettingsButton());const settingsMenu=nonnull(document.getElementById("settings"));settingsButton.onclick=event=>{if(elemContainsTarget(settingsMenu,event.target)){return;}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals(false);if(shouldDisplaySettings){displaySettings();}};settingsButton.onblur=settingsBlurHandler;nonnull(settingsButton.querySelector("a")).onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler;});settingsMenu.onblur=settingsBlurHandler;}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings();}removeClass(getSettingsButton(),"rotate");},0);})(); \ No newline at end of file diff --git a/static.files/src-script-813739b1.js b/static.files/src-script-813739b1.js new file mode 100644 index 00000000..bf546257 --- /dev/null +++ b/static.files/src-script-813739b1.js @@ -0,0 +1 @@ +"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth{removeClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","false");};window.rustdocShowSourceSidebar=()=>{addClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","true");};window.rustdocToggleSrcSidebar=()=>{if(document.documentElement.classList.contains("src-sidebar-expanded")){window.rustdocCloseSourceSidebar();}else{window.rustdocShowSourceSidebar();}};function createSrcSidebar(srcIndexStr){const container=nonnull(document.querySelector("nav.sidebar"));const sidebar=document.createElement("div");sidebar.id="src-sidebar";const srcIndex=new Map(JSON.parse(srcIndexStr));let hasFoundFile=false;for(const[key,source]of srcIndex){source[NAME_OFFSET]=key;hasFoundFile=createDirEntry(source,sidebar,"",hasFoundFile);}container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus();}}function highlightSrcLines(){const match=window.location.hash.match(/^#?(\d+)(?:-(\d+))?$/);if(!match){return;}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10);}if(to{removeClass(e,"line-highlighted");});for(let i=from;i<=to;++i){elem=document.getElementById(""+i);if(!elem){break;}addClass(elem,"line-highlighted");}}const handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,"","#"+name);highlightSrcLines();}else{location.replace("#"+name);}window.scrollTo(x,y);};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return;}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",highlightSrcLines);onEachLazy(document.querySelectorAll("a[data-nosnippet]"),el=>{el.addEventListener("click",handleSrcHighlight);});highlightSrcLines();window.createSrcSidebar=createSrcSidebar;})(); \ No newline at end of file diff --git a/static.files/src-script-e66d777a5a92e9b2.js b/static.files/src-script-e66d777a5a92e9b2.js deleted file mode 100644 index d0aebb85..00000000 --- a/static.files/src-script-e66d777a5a92e9b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth{removeClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","false")};window.rustdocShowSourceSidebar=()=>{addClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","true")};window.rustdocToggleSrcSidebar=()=>{if(document.documentElement.classList.contains("src-sidebar-expanded")){window.rustdocCloseSourceSidebar()}else{window.rustdocShowSourceSidebar()}};function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;for(const[key,source]of srcIndex){source[NAME_OFFSET]=key;hasFoundFile=createDirEntry(source,sidebar,"",hasFoundFile)}container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}function highlightSrcLines(){const match=window.location.hash.match(/^#?(\d+)(?:-(\d+))?$/);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("a"),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 handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSrcLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return}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",highlightSrcLines);onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSrcHighlight)});highlightSrcLines();window.createSrcSidebar=createSrcSidebar})() \ No newline at end of file diff --git a/static.files/storage-4c98445ec4002617.js b/static.files/storage-4c98445ec4002617.js deleted file mode 100644 index b378b856..00000000 --- a/static.files/storage-4c98445ec4002617.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func){for(const elem of arr){if(func(elem)){return true}}return false}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func)}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}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){const themeNames=getVar("themes").split(",").filter(t=>t);themeNames.push(...builtinThemes);if(themeNames.indexOf(newThemeName)===-1){return}if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+encodeURIComponent(newThemeName)+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();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)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar")}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px")}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px")}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0)}}) \ No newline at end of file diff --git a/static.files/storage-68b7e25d.js b/static.files/storage-68b7e25d.js new file mode 100644 index 00000000..5b18baa7 --- /dev/null +++ b/static.files/storage-68b7e25d.js @@ -0,0 +1,25 @@ +"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=(function(){const currentTheme=document.getElementById("themeStyle");return currentTheme instanceof HTMLLinkElement?currentTheme:null;})();const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null;})();function nonnull(x,msg){if(x===null){throw(msg||"unexpected null value!");}else{return x;}}function nonundef(x,msg){if(x===undefined){throw(msg||"unexpected null value!");}else{return x;}}function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def;}}return current;}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return!!elem&&!!elem.classList&&elem.classList.contains(className);}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className);}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className);}}function onEach(arr,func){for(const elem of arr){if(func(elem)){return true;}}return false;}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func);}function updateLocalStorage(name,value){try{if(value===null){window.localStorage.removeItem("rustdoc-"+name);}else{window.localStorage.setItem("rustdoc-"+name,value);}}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name);}catch(e){return null;}}function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.getAttribute("data-"+name):null;}function switchTheme(newThemeName,saveTheme){const themeNames=(getVar("themes")||"").split(",").filter(t=>t);themeNames.push(...builtinThemes);if(newThemeName===null||themeNames.indexOf(newThemeName)===-1){return;}if(saveTheme){updateLocalStorage("theme",newThemeName);}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme&&window.currentTheme.parentNode){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null;}}else{const newHref=getVar("root-path")+encodeURIComponent(newThemeName)+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=(function(){const currentTheme=document.getElementById("themeStyle");return currentTheme instanceof HTMLLinkElement?currentTheme:null;})();}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme);}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref;}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true);}else{switchTheme(getSettingValue("theme"),false);}}mql.addEventListener("change",updateTheme);return updateTheme;})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&localStoredTheme!==null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme);}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded");}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar");}if(getSettingValue("hide-toc")==="true"){addClass(document.documentElement,"hide-toc");}if(getSettingValue("hide-modnav")==="true"){addClass(document.documentElement,"hide-modnav");}if(getSettingValue("sans-serif-fonts")==="true"){addClass(document.documentElement,"sans-serif");}if(getSettingValue("word-wrap-source-code")==="true"){addClass(document.documentElement,"word-wrap-source-code");}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px",);}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px",);}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0);}});class RustdocSearchElement extends HTMLElement{constructor(){super();}connectedCallback(){const rootPath=getVar("root-path");const currentCrate=getVar("current-crate");this.innerHTML=``;}}window.customElements.define("rustdoc-search",RustdocSearchElement);class RustdocToolbarElement extends HTMLElement{constructor(){super();}connectedCallback(){if(this.firstElementChild){return;}const rootPath=getVar("root-path");this.innerHTML=` +
    + Settings +
    +
    + Help +
    + `;}}window.customElements.define("rustdoc-toolbar",RustdocToolbarElement); \ No newline at end of file diff --git a/static.files/wheel-7b819b6101059cd0.svg b/static.files/wheel-7b819b6101059cd0.svg deleted file mode 100644 index 83c07f63..00000000 --- a/static.files/wheel-7b819b6101059cd0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/trait.impl/actix_auth_middleware/trait.GetLoginRoute.js b/trait.impl/actix_auth_middleware/trait.GetLoginRoute.js index 89749ce8..3e4d0dcc 100644 --- a/trait.impl/actix_auth_middleware/trait.GetLoginRoute.js +++ b/trait.impl/actix_auth_middleware/trait.GetLoginRoute.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl GetLoginRoute for Routes"],["impl GetLoginRoute for Auth"],["impl GetLoginRoute for Routes"],["impl GetLoginRoute for Auth"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl GetLoginRoute for Auth"],["impl GetLoginRoute for Routes"],["impl GetLoginRoute for Auth"],["impl GetLoginRoute for Routes"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[658]} \ No newline at end of file diff --git a/trait.impl/actix_web/error/response_error/trait.ResponseError.js b/trait.impl/actix_web/error/response_error/trait.ResponseError.js index 9a6c228e..1ffc6c2e 100644 --- a/trait.impl/actix_web/error/response_error/trait.ResponseError.js +++ b/trait.impl/actix_web/error/response_error/trait.ResponseError.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl ResponseError for ServiceError"],["impl ResponseError for PageError"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl ResponseError for PageError"],["impl ResponseError for ServiceError"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[317]} \ No newline at end of file diff --git a/trait.impl/actix_web/service/trait.HttpServiceFactory.js b/trait.impl/actix_web/service/trait.HttpServiceFactory.js index c43cfa00..23fff52e 100644 --- a/trait.impl/actix_web/service/trait.HttpServiceFactory.js +++ b/trait.impl/actix_web/service/trait.HttpServiceFactory.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl HttpServiceFactory for index"],["impl HttpServiceFactory for get_notification"],["impl HttpServiceFactory for get"],["impl HttpServiceFactory for easy"],["impl HttpServiceFactory for list_sitekeys"],["impl HttpServiceFactory for update_key"],["impl HttpServiceFactory for show_widget"],["impl HttpServiceFactory for dist"],["impl HttpServiceFactory for delete_account"],["impl HttpServiceFactory for verify_pow"],["impl HttpServiceFactory for health"],["impl HttpServiceFactory for username_exists"],["impl HttpServiceFactory for email_exists"],["impl HttpServiceFactory for get_secret"],["impl HttpServiceFactory for signout"],["impl HttpServiceFactory for update_user_secret"],["impl HttpServiceFactory for add_notification"],["impl HttpServiceFactory for easy"],["impl HttpServiceFactory for join"],["impl HttpServiceFactory for percentile_benches"],["impl HttpServiceFactory for validate_captcha_token"],["impl HttpServiceFactory for download"],["impl HttpServiceFactory for update_user_password"],["impl HttpServiceFactory for delete_sitekey"],["impl HttpServiceFactory for error"],["impl HttpServiceFactory for delete_account"],["impl HttpServiceFactory for panel"],["impl HttpServiceFactory for get_percentile"],["impl HttpServiceFactory for set_username"],["impl HttpServiceFactory for advance"],["impl HttpServiceFactory for create"],["impl HttpServiceFactory for login"],["impl HttpServiceFactory for advance"],["impl HttpServiceFactory for get_captcha"],["impl HttpServiceFactory for build_details"],["impl HttpServiceFactory for secret"],["impl HttpServiceFactory for post_percentile"],["impl HttpServiceFactory for view_sitekey"],["impl HttpServiceFactory for update_secret"],["impl HttpServiceFactory for login"],["impl HttpServiceFactory for sitemap"],["impl HttpServiceFactory for static_files"],["impl HttpServiceFactory for register"],["impl HttpServiceFactory for spec"],["impl HttpServiceFactory for favicons"],["impl HttpServiceFactory for update"],["impl HttpServiceFactory for delete"],["impl HttpServiceFactory for mark_read"],["impl HttpServiceFactory for set_email"],["impl HttpServiceFactory for create"],["impl HttpServiceFactory for get_config"],["impl HttpServiceFactory for update_captcha"],["impl HttpServiceFactory for settings"],["impl HttpServiceFactory for notifications"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl HttpServiceFactory for delete_account"],["impl HttpServiceFactory for email_exists"],["impl HttpServiceFactory for set_email"],["impl HttpServiceFactory for update_user_password"],["impl HttpServiceFactory for get_secret"],["impl HttpServiceFactory for update_user_secret"],["impl HttpServiceFactory for set_username"],["impl HttpServiceFactory for username_exists"],["impl HttpServiceFactory for login"],["impl HttpServiceFactory for register"],["impl HttpServiceFactory for signout"],["impl HttpServiceFactory for create"],["impl HttpServiceFactory for delete"],["impl HttpServiceFactory for create"],["impl HttpServiceFactory for update"],["impl HttpServiceFactory for get_captcha"],["impl HttpServiceFactory for get"],["impl HttpServiceFactory for update_captcha"],["impl HttpServiceFactory for update_key"],["impl HttpServiceFactory for build_details"],["impl HttpServiceFactory for health"],["impl HttpServiceFactory for add_notification"],["impl HttpServiceFactory for get_notification"],["impl HttpServiceFactory for mark_read"],["impl HttpServiceFactory for get_config"],["impl HttpServiceFactory for verify_pow"],["impl HttpServiceFactory for validate_captcha_token"],["impl HttpServiceFactory for percentile_benches"],["impl HttpServiceFactory for download"],["impl HttpServiceFactory for secret"],["impl HttpServiceFactory for dist"],["impl HttpServiceFactory for index"],["impl HttpServiceFactory for spec"],["impl HttpServiceFactory for login"],["impl HttpServiceFactory for join"],["impl HttpServiceFactory for error"],["impl HttpServiceFactory for notifications"],["impl HttpServiceFactory for delete_account"],["impl HttpServiceFactory for settings"],["impl HttpServiceFactory for update_secret"],["impl HttpServiceFactory for advance"],["impl HttpServiceFactory for easy"],["impl HttpServiceFactory for delete_sitekey"],["impl HttpServiceFactory for advance"],["impl HttpServiceFactory for easy"],["impl HttpServiceFactory for list_sitekeys"],["impl HttpServiceFactory for view_sitekey"],["impl HttpServiceFactory for panel"],["impl HttpServiceFactory for get_percentile"],["impl HttpServiceFactory for post_percentile"],["impl HttpServiceFactory for sitemap"],["impl HttpServiceFactory for favicons"],["impl HttpServiceFactory for static_files"],["impl HttpServiceFactory for show_widget"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[10174]} \ No newline at end of file diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js index e91d8515..f2a182d4 100644 --- a/trait.impl/core/clone/trait.Clone.js +++ b/trait.impl/core/clone/trait.Clone.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Clone for CreatePerformanceAnalytics"],["impl<'a> Clone for Login<'a>"],["impl<'a> Clone for Register<'a>"],["impl Clone for Box<dyn MCDatabase>"],["impl Clone for StatsUnixTimestamp"],["impl Clone for PerformanceAnalytics"],["impl Clone for Captcha"],["impl<'a> Clone for AddNotification<'a>"],["impl Clone for EasyCaptcha"],["impl Clone for Secret"],["impl Clone for Notification"],["impl<'a> Clone for CreateCaptcha<'a>"],["impl<'a> Clone for UpdateEmail<'a>"],["impl Clone for NameHash"],["impl Clone for TrafficPattern"]], -"db_sqlx_maria":[["impl Clone for Database"],["impl Clone for InnerNotification"]], -"db_sqlx_postgres":[["impl Clone for Database"],["impl Clone for InnerNotification"]], -"mcaptcha":[["impl Clone for IndexPage"],["impl<'a> Clone for EasyIndexPage<'a>"],["impl Clone for IndexPage"],["impl Clone for Stats"],["impl<'a, K, V> Clone for SudoPage<'a, K, V>
    where\n K: Display + Render + Clone,\n V: Display + Render + Clone,
    "],["impl Clone for Email"],["impl Clone for I32Levels"],["impl Clone for ValidationToken"],["impl Clone for AddNotificationRequest"],["impl Clone for NotificationResp"],["impl Clone for Server"],["impl Clone for Captcha"],["impl Clone for DeleteCaptcha"],["impl Clone for Survey"],["impl Clone for Page"],["impl Clone for UpdateTrafficPattern"],["impl Clone for Register"],["impl Clone for Real"],["impl Clone for CaptchaValidateResp"],["impl Clone for StatsPayload"],["impl Clone for SecretsStore"],["impl<'a> Clone for EasyEditPage<'a>"],["impl Clone for MCaptchaDetails"],["impl Clone for PercentilePage"],["impl Clone for AdvanceEditPage"],["impl Clone for IndexPage"],["impl Clone for PercentileReqBuilder"],["impl Clone for Username"],["impl<'a> Clone for IndexPage<'a>"],["impl Clone for Levels"],["impl Clone for DefaultDifficultyStrategy"],["impl Clone for PercentileResp"],["impl Clone for Login"],["impl Clone for BuildDetails"],["impl Clone for BuildDetailsBuilder"],["impl Clone for Settings"],["impl Clone for Database"],["impl Clone for ApiPoWConfig"],["impl Clone for PercentileRespBuilder"],["impl Clone for DBType"],["impl<'a> Clone for ErrorPage<'a>"],["impl<'a> Clone for AdvanceIndexPage<'a>"],["impl Clone for AccountCheckPayload"],["impl Clone for BuildDetailsBuilder"],["impl Clone for IndexPage"],["impl Clone for Date"],["impl<'a> Clone for IndexPage<'a>"],["impl Clone for IndexPage"],["impl Clone for Password"],["impl Clone for Health"],["impl Clone for TrafficPatternRequest"],["impl Clone for Survey"],["impl Clone for PercentileReq"],["impl Clone for HealthBuilder"],["impl Clone for GetConfigPayload"],["impl Clone for AccountCheckResp"],["impl Clone for VerifyCaptchaResultPayload"],["impl Clone for Redis"],["impl Clone for IndexPage"],["impl Clone for CaptchaStats"],["impl Clone for IndexPage"],["impl Clone for Smtp"],["impl Clone for Dummy"],["impl Clone for ApiWork"],["impl Clone for BuildDetails"],["impl Clone for ChangePasswordReqest"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Clone for Captcha"],["impl Clone for CreatePerformanceAnalytics"],["impl Clone for EasyCaptcha"],["impl Clone for NameHash"],["impl Clone for Notification"],["impl Clone for PerformanceAnalytics"],["impl Clone for Secret"],["impl Clone for StatsUnixTimestamp"],["impl Clone for TrafficPattern"],["impl Clone for Box<dyn MCDatabase>"],["impl<'a> Clone for Login<'a>"],["impl<'a> Clone for AddNotification<'a>"],["impl<'a> Clone for CreateCaptcha<'a>"],["impl<'a> Clone for Register<'a>"],["impl<'a> Clone for UpdateEmail<'a>"]]],["db_sqlx_maria",[["impl Clone for Database"],["impl Clone for InnerNotification"]]],["db_sqlx_postgres",[["impl Clone for Database"],["impl Clone for InnerNotification"]]],["mcaptcha",[["impl Clone for DBType"],["impl Clone for Email"],["impl Clone for ChangePasswordReqest"],["impl Clone for AccountCheckPayload"],["impl Clone for AccountCheckResp"],["impl Clone for Username"],["impl Clone for Login"],["impl Clone for Password"],["impl Clone for Register"],["impl Clone for MCaptchaDetails"],["impl Clone for DeleteCaptcha"],["impl Clone for TrafficPatternRequest"],["impl Clone for UpdateTrafficPattern"],["impl Clone for I32Levels"],["impl Clone for Levels"],["impl Clone for StatsPayload"],["impl Clone for BuildDetails"],["impl Clone for BuildDetailsBuilder"],["impl Clone for Health"],["impl Clone for HealthBuilder"],["impl Clone for AddNotificationRequest"],["impl Clone for NotificationResp"],["impl Clone for ApiPoWConfig"],["impl Clone for GetConfigPayload"],["impl Clone for ApiWork"],["impl Clone for ValidationToken"],["impl Clone for CaptchaValidateResp"],["impl Clone for VerifyCaptchaResultPayload"],["impl Clone for Stats"],["impl Clone for BuildDetails"],["impl Clone for BuildDetailsBuilder"],["impl Clone for PercentileReq"],["impl Clone for PercentileReqBuilder"],["impl Clone for PercentileResp"],["impl Clone for PercentileRespBuilder"],["impl Clone for Page"],["impl Clone for Date"],["impl Clone for IndexPage"],["impl Clone for IndexPage"],["impl Clone for AdvanceEditPage"],["impl Clone for IndexPage"],["impl Clone for IndexPage"],["impl Clone for IndexPage"],["impl Clone for PercentilePage"],["impl Clone for IndexPage"],["impl Clone for Captcha"],["impl Clone for Database"],["impl Clone for DefaultDifficultyStrategy"],["impl Clone for Redis"],["impl Clone for Server"],["impl Clone for Smtp"],["impl Clone for Survey"],["impl Clone for CaptchaStats"],["impl Clone for Dummy"],["impl Clone for Real"],["impl Clone for Settings"],["impl Clone for SecretsStore"],["impl Clone for Survey"],["impl Clone for IndexPage"],["impl<'a> Clone for IndexPage<'a>"],["impl<'a> Clone for ErrorPage<'a>"],["impl<'a> Clone for IndexPage<'a>"],["impl<'a> Clone for AdvanceIndexPage<'a>"],["impl<'a> Clone for EasyIndexPage<'a>"],["impl<'a> Clone for EasyEditPage<'a>"],["impl<'a, K, V> Clone for SudoPage<'a, K, V>
    where\n K: Display + Render + Clone,\n V: Display + Render + Clone,
    "]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4235,577,592,20632]} \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.Eq.js b/trait.impl/core/cmp/trait.Eq.js index cb2aea8c..bfe8b452 100644 --- a/trait.impl/core/cmp/trait.Eq.js +++ b/trait.impl/core/cmp/trait.Eq.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl Eq for Redis"],["impl Eq for Server"],["impl Eq for DBType"],["impl Eq for Smtp"],["impl Eq for Page"],["impl Eq for Captcha"],["impl Eq for Survey"],["impl Eq for Stats"],["impl Eq for DefaultDifficultyStrategy"],["impl Eq for Settings"],["impl Eq for Database"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl Eq for DBType"],["impl Eq for Stats"],["impl Eq for Page"],["impl Eq for Captcha"],["impl Eq for Database"],["impl Eq for DefaultDifficultyStrategy"],["impl Eq for Redis"],["impl Eq for Server"],["impl Eq for Smtp"],["impl Eq for Survey"],["impl Eq for Settings"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[2885]} \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.PartialEq.js b/trait.impl/core/cmp/trait.PartialEq.js index 3a379836..d0f1de7a 100644 --- a/trait.impl/core/cmp/trait.PartialEq.js +++ b/trait.impl/core/cmp/trait.PartialEq.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl<'a> PartialEq for CreateCaptcha<'a>"],["impl<'a> PartialEq for Register<'a>"],["impl PartialEq for EasyCaptcha"],["impl PartialEq for Captcha"],["impl<'a> PartialEq for AddNotification<'a>"],["impl PartialEq for Notification"],["impl<'a> PartialEq for UpdateEmail<'a>"],["impl PartialEq for StatsUnixTimestamp"],["impl PartialEq for CreatePerformanceAnalytics"],["impl PartialEq for TrafficPattern"],["impl PartialEq for PerformanceAnalytics"],["impl<'a> PartialEq for Login<'a>"],["impl PartialEq for NameHash"],["impl PartialEq for Secret"]], -"db_sqlx_maria":[["impl PartialEq for InnerNotification"]], -"db_sqlx_postgres":[["impl PartialEq for InnerNotification"]], -"mcaptcha":[["impl PartialEq for Smtp"],["impl PartialEq for Captcha"],["impl PartialEq for DefaultDifficultyStrategy"],["impl PartialEq for CaptchaStats"],["impl PartialEq for DBErrorWrapper"],["impl PartialEq for Page"],["impl PartialEq for Settings"],["impl PartialEq for Stats"],["impl PartialEq for Server"],["impl PartialEq for PageError"],["impl PartialEq for SmtpErrorWrapper"],["impl PartialEq for Database"],["impl PartialEq for Redis"],["impl PartialEq for NotificationResp"],["impl PartialEq for Survey"],["impl PartialEq for Real"],["impl PartialEq for DBType"],["impl PartialEq for AddNotificationRequest"],["impl PartialEq for ServiceError"],["impl PartialEq for Dummy"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl PartialEq for Captcha"],["impl PartialEq for CreatePerformanceAnalytics"],["impl PartialEq for EasyCaptcha"],["impl PartialEq for NameHash"],["impl PartialEq for Notification"],["impl PartialEq for PerformanceAnalytics"],["impl PartialEq for Secret"],["impl PartialEq for StatsUnixTimestamp"],["impl PartialEq for TrafficPattern"],["impl<'a> PartialEq for Login<'a>"],["impl<'a> PartialEq for AddNotification<'a>"],["impl<'a> PartialEq for CreateCaptcha<'a>"],["impl<'a> PartialEq for Register<'a>"],["impl<'a> PartialEq for UpdateEmail<'a>"]]],["db_sqlx_maria",[["impl PartialEq for InnerNotification"]]],["db_sqlx_postgres",[["impl PartialEq for InnerNotification"]]],["mcaptcha",[["impl PartialEq for PageError"],["impl PartialEq for ServiceError"],["impl PartialEq for DBType"],["impl PartialEq for AddNotificationRequest"],["impl PartialEq for NotificationResp"],["impl PartialEq for Stats"],["impl PartialEq for Page"],["impl PartialEq for DBErrorWrapper"],["impl PartialEq for SmtpErrorWrapper"],["impl PartialEq for Captcha"],["impl PartialEq for Database"],["impl PartialEq for DefaultDifficultyStrategy"],["impl PartialEq for Redis"],["impl PartialEq for Server"],["impl PartialEq for Smtp"],["impl PartialEq for Survey"],["impl PartialEq for CaptchaStats"],["impl PartialEq for Dummy"],["impl PartialEq for Real"],["impl PartialEq for Settings"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[3947,320,329,5793]} \ No newline at end of file diff --git a/trait.impl/core/convert/trait.From.js b/trait.impl/core/convert/trait.From.js index 4af54d4b..9cab595d 100644 --- a/trait.impl/core/convert/trait.From.js +++ b/trait.impl/core/convert/trait.From.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"db_sqlx_maria":[["impl From<InnerNotification> for Notification"]], -"db_sqlx_postgres":[["impl From<InnerNotification> for Notification"]], -"mcaptcha":[["impl From<CaptchaError> for ServiceError"],["impl From<VerifyCaptchaResultPayload> for VerifyCaptchaResult"],["impl From<&TrafficPatternRequest> for TrafficPattern"],["impl From<ValidationErrors> for ServiceError"],["impl From<ParseError> for ServiceError"],["impl From<RecvError> for ServiceError"],["impl From<String> for HealthBuilderError"],["impl From<UninitializedFieldError> for BuildDetailsBuilderError"],["impl From<Error> for ServiceError"],["impl From<UninitializedFieldError> for BuildDetailsBuilderError"],["impl From<DBError> for ServiceError"],["impl From<DBError> for PageError"],["impl From<ApiWork> for Work"],["impl From<UninitializedFieldError> for HealthBuilderError"],["impl From<ChangePasswordReqest> for UpdatePassword"],["impl From<String> for BuildDetailsBuilderError"],["impl From<String> for PercentileRespBuilderError"],["impl From<UninitializedFieldError> for PercentileRespBuilderError"],["impl From<Notification> for Notification"],["impl From<ServiceError> for PageError"],["impl From<CredsError> for ServiceError"],["impl From<Notification> for NotificationResp"],["impl From<UninitializedFieldError> for PercentileReqBuilderError"],["impl From<String> for PercentileReqBuilderError"],["impl From<MailboxError> for ServiceError"],["impl From<String> for BuildDetailsBuilderError"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_sqlx_maria",[["impl From<InnerNotification> for Notification"]]],["db_sqlx_postgres",[["impl From<InnerNotification> for Notification"]]],["mcaptcha",[["impl From<&TrafficPatternRequest> for TrafficPattern"],["impl From<DBError> for PageError"],["impl From<DBError> for ServiceError"],["impl From<ParseError> for ServiceError"],["impl From<ServiceError> for PageError"],["impl From<Notification> for NotificationResp"],["impl From<Notification> for Notification"],["impl From<String> for BuildDetailsBuilderError"],["impl From<String> for HealthBuilderError"],["impl From<String> for BuildDetailsBuilderError"],["impl From<String> for PercentileReqBuilderError"],["impl From<String> for PercentileRespBuilderError"],["impl From<Error> for ServiceError"],["impl From<ChangePasswordReqest> for UpdatePassword"],["impl From<ApiWork> for Work"],["impl From<VerifyCaptchaResultPayload> for VerifyCaptchaResult"],["impl From<CaptchaError> for ServiceError"],["impl From<CredsError> for ServiceError"],["impl From<MailboxError> for ServiceError"],["impl From<RecvError> for ServiceError"],["impl From<UninitializedFieldError> for BuildDetailsBuilderError"],["impl From<UninitializedFieldError> for HealthBuilderError"],["impl From<UninitializedFieldError> for BuildDetailsBuilderError"],["impl From<UninitializedFieldError> for PercentileReqBuilderError"],["impl From<UninitializedFieldError> for PercentileRespBuilderError"],["impl From<ValidationErrors> for ServiceError"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[458,474,10339]} \ No newline at end of file diff --git a/trait.impl/core/default/trait.Default.js b/trait.impl/core/default/trait.Default.js index b458a787..cc266742 100644 --- a/trait.impl/core/default/trait.Default.js +++ b/trait.impl/core/default/trait.Default.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Default for Captcha"],["impl Default for TrafficPattern"],["impl Default for Secret"],["impl<'a> Default for AddNotification<'a>"],["impl Default for CreatePerformanceAnalytics"],["impl Default for Notification"],["impl Default for PerformanceAnalytics"],["impl Default for EasyCaptcha"],["impl Default for StatsUnixTimestamp"],["impl<'a> Default for CreateCaptcha<'a>"]], -"db_sqlx_postgres":[["impl Default for InnerNotification"]], -"mcaptcha":[["impl Default for HealthBuilder"],["impl Default for Real"],["impl Default for IndexPage"],["impl Default for AddNotificationRequest"],["impl Default for TrafficPatternRequest"],["impl Default for NotificationResp"],["impl<'a> Default for AdvanceIndexPage<'a>"],["impl Default for BuildDetailsBuilder"],["impl Default for IndexPage"],["impl<'a> Default for EasyIndexPage<'a>"],["impl Default for IndexPage"],["impl Default for PercentileRespBuilder"],["impl Default for BuildDetailsBuilder"],["impl Default for PercentileReqBuilder"],["impl Default for Dummy"],["impl Default for CaptchaStats"],["impl Default for SecretsStore"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Default for Captcha"],["impl Default for CreatePerformanceAnalytics"],["impl Default for EasyCaptcha"],["impl Default for Notification"],["impl Default for PerformanceAnalytics"],["impl Default for Secret"],["impl Default for StatsUnixTimestamp"],["impl Default for TrafficPattern"],["impl<'a> Default for AddNotification<'a>"],["impl<'a> Default for CreateCaptcha<'a>"]]],["db_sqlx_postgres",[["impl Default for InnerNotification"]]],["mcaptcha",[["impl Default for TrafficPatternRequest"],["impl Default for BuildDetailsBuilder"],["impl Default for HealthBuilder"],["impl Default for AddNotificationRequest"],["impl Default for NotificationResp"],["impl Default for BuildDetailsBuilder"],["impl Default for PercentileReqBuilder"],["impl Default for PercentileRespBuilder"],["impl Default for IndexPage"],["impl Default for IndexPage"],["impl Default for IndexPage"],["impl Default for CaptchaStats"],["impl Default for Dummy"],["impl Default for Real"],["impl Default for SecretsStore"],["impl<'a> Default for AdvanceIndexPage<'a>"],["impl<'a> Default for EasyIndexPage<'a>"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[2869,331,5435]} \ No newline at end of file diff --git a/trait.impl/core/error/trait.Error.js b/trait.impl/core/error/trait.Error.js index fe149048..991173af 100644 --- a/trait.impl/core/error/trait.Error.js +++ b/trait.impl/core/error/trait.Error.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Error for DBError"]], -"mcaptcha":[["impl Error for BuildDetailsBuilderError"],["impl Error for PercentileRespBuilderError"],["impl Error for SmtpErrorWrapper"],["impl Error for PageError"],["impl Error for DBErrorWrapper"],["impl Error for ServiceError"],["impl Error for HealthBuilderError"],["impl Error for PercentileReqBuilderError"],["impl Error for BuildDetailsBuilderError"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Error for DBError"]]],["mcaptcha",[["impl Error for BuildDetailsBuilderError"],["impl Error for HealthBuilderError"],["impl Error for BuildDetailsBuilderError"],["impl Error for PercentileReqBuilderError"],["impl Error for PercentileRespBuilderError"],["impl Error for PageError"],["impl Error for ServiceError"],["impl Error for DBErrorWrapper"],["impl Error for SmtpErrorWrapper"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[272,2757]} \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js index da254cc4..8e5095b3 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Debug for StatsUnixTimestamp"],["impl<'a> Debug for AddNotification<'a>"],["impl Debug for DBError"],["impl Debug for NameHash"],["impl Debug for CreatePerformanceAnalytics"],["impl Debug for PerformanceAnalytics"],["impl Debug for EasyCaptcha"],["impl<'a> Debug for Login<'a>"],["impl Debug for TrafficPattern"],["impl Debug for Notification"],["impl<'a> Debug for CreateCaptcha<'a>"],["impl<'a> Debug for UpdateEmail<'a>"],["impl<'a> Debug for Register<'a>"],["impl Debug for Secret"],["impl Debug for Captcha"]], -"db_sqlx_maria":[["impl Debug for InnerNotification"]], -"db_sqlx_postgres":[["impl Debug for InnerNotification"]], -"mcaptcha":[["impl Debug for Real"],["impl Debug for Survey"],["impl Debug for AddNotificationRequest"],["impl Debug for VerifyCaptchaResultPayload"],["impl Debug for ChangePasswordReqest"],["impl Debug for AccountCheckPayload"],["impl Debug for GetConfigPayload"],["impl Debug for Redis"],["impl Debug for Register"],["impl Debug for ValidationToken"],["impl Debug for Login"],["impl Debug for Settings"],["impl Debug for UpdateTrafficPattern"],["impl Debug for Health"],["impl Debug for SmtpErrorWrapper"],["impl Debug for DBType"],["impl Debug for HealthBuilderError"],["impl Debug for CaptchaStats"],["impl Debug for MCaptchaDetails"],["impl Debug for DBErrorWrapper"],["impl Debug for TrafficPatternRequest"],["impl Debug for DeleteCaptcha"],["impl Debug for Captcha"],["impl Debug for ApiWork"],["impl Debug for Date"],["impl Debug for I32Levels"],["impl Debug for SecretsStore"],["impl Debug for PercentileRespBuilderError"],["impl Debug for Password"],["impl Debug for Username"],["impl Debug for PercentileReqBuilderError"],["impl Debug for CaptchaValidateResp"],["impl Debug for AccountCheckResp"],["impl Debug for ApiPoWConfig"],["impl Debug for Stats"],["impl Debug for Dummy"],["impl Debug for DefaultDifficultyStrategy"],["impl Debug for BuildDetails"],["impl Debug for BuildDetailsBuilderError"],["impl Debug for Email"],["impl Debug for Page"],["impl Debug for StatsPayload"],["impl Debug for Database"],["impl Debug for PercentileResp"],["impl Debug for BuildDetails"],["impl Debug for Levels"],["impl Debug for Server"],["impl Debug for Smtp"],["impl Debug for ServiceError"],["impl Debug for BuildDetailsBuilderError"],["impl Debug for PageError"],["impl Debug for PercentileReq"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Debug for DBError"],["impl Debug for Captcha"],["impl Debug for CreatePerformanceAnalytics"],["impl Debug for EasyCaptcha"],["impl Debug for NameHash"],["impl Debug for Notification"],["impl Debug for PerformanceAnalytics"],["impl Debug for Secret"],["impl Debug for StatsUnixTimestamp"],["impl Debug for TrafficPattern"],["impl<'a> Debug for Login<'a>"],["impl<'a> Debug for AddNotification<'a>"],["impl<'a> Debug for CreateCaptcha<'a>"],["impl<'a> Debug for Register<'a>"],["impl<'a> Debug for UpdateEmail<'a>"]]],["db_sqlx_maria",[["impl Debug for InnerNotification"]]],["db_sqlx_postgres",[["impl Debug for InnerNotification"]]],["mcaptcha",[["impl Debug for BuildDetailsBuilderError"],["impl Debug for HealthBuilderError"],["impl Debug for BuildDetailsBuilderError"],["impl Debug for PercentileReqBuilderError"],["impl Debug for PercentileRespBuilderError"],["impl Debug for PageError"],["impl Debug for ServiceError"],["impl Debug for DBType"],["impl Debug for Email"],["impl Debug for ChangePasswordReqest"],["impl Debug for AccountCheckPayload"],["impl Debug for AccountCheckResp"],["impl Debug for Username"],["impl Debug for Login"],["impl Debug for Password"],["impl Debug for Register"],["impl Debug for MCaptchaDetails"],["impl Debug for DeleteCaptcha"],["impl Debug for TrafficPatternRequest"],["impl Debug for UpdateTrafficPattern"],["impl Debug for I32Levels"],["impl Debug for Levels"],["impl Debug for StatsPayload"],["impl Debug for BuildDetails"],["impl Debug for Health"],["impl Debug for AddNotificationRequest"],["impl Debug for ApiPoWConfig"],["impl Debug for GetConfigPayload"],["impl Debug for ApiWork"],["impl Debug for ValidationToken"],["impl Debug for CaptchaValidateResp"],["impl Debug for VerifyCaptchaResultPayload"],["impl Debug for Stats"],["impl Debug for BuildDetails"],["impl Debug for PercentileReq"],["impl Debug for PercentileResp"],["impl Debug for Page"],["impl Debug for Date"],["impl Debug for DBErrorWrapper"],["impl Debug for SmtpErrorWrapper"],["impl Debug for Captcha"],["impl Debug for Database"],["impl Debug for DefaultDifficultyStrategy"],["impl Debug for Redis"],["impl Debug for Server"],["impl Debug for Smtp"],["impl Debug for Survey"],["impl Debug for CaptchaStats"],["impl Debug for Dummy"],["impl Debug for Real"],["impl Debug for Settings"],["impl Debug for SecretsStore"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4034,308,317,15375]} \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js index 202ab95c..6a1fdf92 100644 --- a/trait.impl/core/fmt/trait.Display.js +++ b/trait.impl/core/fmt/trait.Display.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Display for DBError"]], -"mcaptcha":[["impl Display for PageError"],["impl Display for BuildDetailsBuilderError"],["impl Display for PercentileReqBuilderError"],["impl Display for BuildDetailsBuilderError"],["impl Display for PercentileRespBuilderError"],["impl Display for HealthBuilderError"],["impl Display for DBType"],["impl Display for DBErrorWrapper"],["impl Display for ServiceError"],["impl Display for SmtpErrorWrapper"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Display for DBError"]]],["mcaptcha",[["impl Display for BuildDetailsBuilderError"],["impl Display for HealthBuilderError"],["impl Display for BuildDetailsBuilderError"],["impl Display for PercentileReqBuilderError"],["impl Display for PercentileRespBuilderError"],["impl Display for PageError"],["impl Display for ServiceError"],["impl Display for DBType"],["impl Display for DBErrorWrapper"],["impl Display for SmtpErrorWrapper"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[274,3039]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Freeze.js b/trait.impl/core/marker/trait.Freeze.js index eb3e77a0..893e4997 100644 --- a/trait.impl/core/marker/trait.Freeze.js +++ b/trait.impl/core/marker/trait.Freeze.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Freeze for DBError",1,["db_core::errors::DBError"]],["impl<'a> Freeze for Register<'a>",1,["db_core::Register"]],["impl<'a> Freeze for UpdateEmail<'a>",1,["db_core::UpdateEmail"]],["impl<'a> Freeze for Login<'a>",1,["db_core::Login"]],["impl Freeze for NameHash",1,["db_core::NameHash"]],["impl Freeze for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Freeze for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Freeze for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Freeze for Notification",1,["db_core::Notification"]],["impl<'a> Freeze for AddNotification<'a>",1,["db_core::AddNotification"]],["impl Freeze for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Freeze for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Freeze for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl Freeze for Captcha",1,["db_core::Captcha"]],["impl Freeze for Secret",1,["db_core::Secret"]]], -"db_sqlx_maria":[["impl Freeze for Database",1,["db_sqlx_maria::Database"]],["impl Freeze for Conn",1,["db_sqlx_maria::Conn"]],["impl Freeze for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Freeze for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Freeze for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]], -"db_sqlx_postgres":[["impl Freeze for Database",1,["db_sqlx_postgres::Database"]],["impl Freeze for Conn",1,["db_sqlx_postgres::Conn"]],["impl Freeze for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Freeze for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Freeze for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]], -"mcaptcha":[["impl Freeze for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Freeze for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Freeze for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Freeze for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Freeze for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Freeze for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Freeze for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Freeze for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Freeze for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Freeze for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Freeze for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Freeze for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Freeze for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Freeze for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Freeze for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Freeze for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Freeze for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Freeze for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Freeze for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Freeze for register",1,["mcaptcha::api::v1::auth::register"]],["impl Freeze for login",1,["mcaptcha::api::v1::auth::login"]],["impl Freeze for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Freeze for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Freeze for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Freeze for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Freeze for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Freeze for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Freeze for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Freeze for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Freeze for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Freeze for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Freeze for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Freeze for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Freeze for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Freeze for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Freeze for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Freeze for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Freeze for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Freeze for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Freeze for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Freeze for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Freeze for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Freeze for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Freeze for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Freeze for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Freeze for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Freeze for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Freeze for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Freeze for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Freeze for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Freeze for health",1,["mcaptcha::api::v1::meta::health"]],["impl Freeze for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Freeze for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Freeze for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Freeze for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Freeze for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Freeze for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Freeze for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Freeze for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Freeze for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Freeze for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Freeze for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Freeze for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Freeze for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Freeze for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Freeze for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Freeze for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Freeze for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Freeze for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Freeze for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Freeze for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Freeze for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Freeze for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Freeze for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Freeze for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Freeze for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Freeze for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Freeze for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Freeze for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Freeze for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Freeze for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Freeze for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Freeze for download",1,["mcaptcha::api::v1::survey::download"]],["impl Freeze for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Freeze for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Freeze for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Freeze for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Freeze for Data",1,["mcaptcha::data::Data"]],["impl Freeze for Date",1,["mcaptcha::date::Date"]],["impl Freeze for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Freeze for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Freeze for Asset",1,["mcaptcha::docs::Asset"]],["impl Freeze for dist",1,["mcaptcha::docs::dist"]],["impl Freeze for spec",1,["mcaptcha::docs::spec"]],["impl Freeze for index",1,["mcaptcha::docs::index"]],["impl Freeze for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl<'a> Freeze for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl Freeze for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Freeze for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Freeze for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Freeze for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Freeze for PageError",1,["mcaptcha::errors::PageError"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Freeze for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Freeze for login",1,["mcaptcha::pages::auth::login::login"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Freeze for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Freeze for join",1,["mcaptcha::pages::auth::register::join"]],["impl<'a, K, V> Freeze for SudoPage<'a, K, V>",1,["mcaptcha::pages::auth::sudo::SudoPage"]],["impl Freeze for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Freeze for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl<'a> Freeze for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl Freeze for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Freeze for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Freeze for error",1,["mcaptcha::pages::errors::error"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Freeze for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Freeze for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Freeze for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl<'a> Freeze for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl Freeze for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Freeze for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Freeze for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Freeze for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Freeze for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl<'a> Freeze for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl Freeze for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl<'a> Freeze for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl Freeze for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Freeze for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Freeze for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Freeze for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl<'a> Freeze for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl Freeze for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Freeze for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Freeze for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Freeze for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Freeze for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Freeze for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Freeze for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Freeze for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Freeze for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Freeze for panel",1,["mcaptcha::pages::panel::panel"]],["impl Freeze for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Freeze for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Freeze for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Freeze for Server",1,["mcaptcha::settings::Server"]],["impl Freeze for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Freeze for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Freeze for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Freeze for DBType",1,["mcaptcha::settings::DBType"]],["impl Freeze for Database",1,["mcaptcha::settings::Database"]],["impl Freeze for Redis",1,["mcaptcha::settings::Redis"]],["impl Freeze for Survey",1,["mcaptcha::settings::Survey"]],["impl Freeze for Settings",1,["mcaptcha::settings::Settings"]],["impl Freeze for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Freeze for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Freeze for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Freeze for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Freeze for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Freeze for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Freeze for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Freeze for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Freeze for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Freeze for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Freeze for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Freeze for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Freeze for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Freeze for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Freeze for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Freeze for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Freeze for Real",1,["mcaptcha::stats::Real"]],["impl Freeze for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Freeze for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Freeze for Survey",1,["mcaptcha::survey::Survey"]],["impl Freeze for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Freeze for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Freeze for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Freeze for show_widget",1,["mcaptcha::widget::show_widget"]],["impl Freeze for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Freeze for FILES",1,["mcaptcha::FILES"]],["impl Freeze for JS",1,["mcaptcha::JS"]],["impl Freeze for CSS",1,["mcaptcha::CSS"]],["impl Freeze for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Freeze for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Freeze for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Freeze for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Freeze for DBError",1,["db_core::errors::DBError"]],["impl Freeze for Captcha",1,["db_core::Captcha"]],["impl Freeze for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Freeze for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Freeze for NameHash",1,["db_core::NameHash"]],["impl Freeze for Notification",1,["db_core::Notification"]],["impl Freeze for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Freeze for Secret",1,["db_core::Secret"]],["impl Freeze for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Freeze for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Freeze for Login<'a>",1,["db_core::Login"]],["impl<'a> Freeze for AddNotification<'a>",1,["db_core::AddNotification"]],["impl<'a> Freeze for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl<'a> Freeze for Register<'a>",1,["db_core::Register"]],["impl<'a> Freeze for UpdateEmail<'a>",1,["db_core::UpdateEmail"]]]],["db_sqlx_maria",[["impl Freeze for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Freeze for Conn",1,["db_sqlx_maria::Conn"]],["impl Freeze for Database",1,["db_sqlx_maria::Database"]],["impl Freeze for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Freeze for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]]],["db_sqlx_postgres",[["impl Freeze for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Freeze for Conn",1,["db_sqlx_postgres::Conn"]],["impl Freeze for Database",1,["db_sqlx_postgres::Database"]],["impl Freeze for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Freeze for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]]],["mcaptcha",[["impl Freeze for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Freeze for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Freeze for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Freeze for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Freeze for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Freeze for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Freeze for PageError",1,["mcaptcha::errors::PageError"]],["impl Freeze for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Freeze for DBType",1,["mcaptcha::settings::DBType"]],["impl Freeze for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Freeze for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Freeze for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Freeze for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Freeze for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Freeze for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Freeze for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Freeze for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Freeze for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Freeze for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Freeze for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Freeze for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Freeze for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Freeze for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Freeze for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Freeze for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Freeze for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Freeze for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Freeze for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Freeze for login",1,["mcaptcha::api::v1::auth::login"]],["impl Freeze for register",1,["mcaptcha::api::v1::auth::register"]],["impl Freeze for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Freeze for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Freeze for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Freeze for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Freeze for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Freeze for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Freeze for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Freeze for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Freeze for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Freeze for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Freeze for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Freeze for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Freeze for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Freeze for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Freeze for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Freeze for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Freeze for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Freeze for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Freeze for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Freeze for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Freeze for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Freeze for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Freeze for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Freeze for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Freeze for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Freeze for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Freeze for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Freeze for health",1,["mcaptcha::api::v1::meta::health"]],["impl Freeze for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Freeze for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Freeze for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Freeze for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Freeze for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Freeze for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Freeze for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Freeze for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Freeze for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Freeze for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Freeze for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Freeze for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Freeze for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Freeze for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Freeze for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Freeze for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Freeze for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Freeze for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Freeze for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Freeze for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Freeze for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Freeze for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Freeze for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Freeze for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Freeze for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Freeze for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Freeze for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Freeze for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Freeze for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Freeze for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Freeze for download",1,["mcaptcha::api::v1::survey::download"]],["impl Freeze for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Freeze for Date",1,["mcaptcha::date::Date"]],["impl Freeze for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Freeze for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Freeze for Asset",1,["mcaptcha::docs::Asset"]],["impl Freeze for dist",1,["mcaptcha::docs::dist"]],["impl Freeze for index",1,["mcaptcha::docs::index"]],["impl Freeze for spec",1,["mcaptcha::docs::spec"]],["impl Freeze for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl Freeze for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Freeze for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Freeze for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Freeze for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Freeze for login",1,["mcaptcha::pages::auth::login::login"]],["impl Freeze for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Freeze for join",1,["mcaptcha::pages::auth::register::join"]],["impl Freeze for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Freeze for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl Freeze for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Freeze for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Freeze for error",1,["mcaptcha::pages::errors::error"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Freeze for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Freeze for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Freeze for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Freeze for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl Freeze for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Freeze for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Freeze for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Freeze for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Freeze for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl Freeze for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl Freeze for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Freeze for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Freeze for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Freeze for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl Freeze for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Freeze for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Freeze for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Freeze for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Freeze for panel",1,["mcaptcha::pages::panel::panel"]],["impl Freeze for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Freeze for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Freeze for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Freeze for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Freeze for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Freeze for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Freeze for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Freeze for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Freeze for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Freeze for Database",1,["mcaptcha::settings::Database"]],["impl Freeze for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Freeze for Redis",1,["mcaptcha::settings::Redis"]],["impl Freeze for Server",1,["mcaptcha::settings::Server"]],["impl Freeze for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Freeze for Survey",1,["mcaptcha::settings::Survey"]],["impl Freeze for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Freeze for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Freeze for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Freeze for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Freeze for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Freeze for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Freeze for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Freeze for Real",1,["mcaptcha::stats::Real"]],["impl Freeze for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Freeze for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Freeze for CSS",1,["mcaptcha::CSS"]],["impl Freeze for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Freeze for Data",1,["mcaptcha::data::Data"]],["impl Freeze for FILES",1,["mcaptcha::FILES"]],["impl Freeze for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Freeze for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Freeze for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Freeze for JS",1,["mcaptcha::JS"]],["impl Freeze for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Freeze for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Freeze for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Freeze for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Freeze for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Freeze for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Freeze for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]],["impl Freeze for Settings",1,["mcaptcha::settings::Settings"]],["impl Freeze for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Freeze for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Freeze for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Freeze for Survey",1,["mcaptcha::survey::Survey"]],["impl Freeze for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Freeze for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Freeze for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Freeze for show_widget",1,["mcaptcha::widget::show_widget"]],["impl<'a> Freeze for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl<'a> Freeze for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl<'a> Freeze for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl<'a> Freeze for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl<'a> Freeze for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl<'a> Freeze for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl<'a, K, V> Freeze for SudoPage<'a, K, V>",1,["mcaptcha::pages::auth::sudo::SudoPage"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4598,1558,1606,67064]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Send.js b/trait.impl/core/marker/trait.Send.js index 77747f66..359c23d9 100644 --- a/trait.impl/core/marker/trait.Send.js +++ b/trait.impl/core/marker/trait.Send.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Send for DBError",1,["db_core::errors::DBError"]],["impl<'a> Send for Register<'a>",1,["db_core::Register"]],["impl<'a> Send for UpdateEmail<'a>",1,["db_core::UpdateEmail"]],["impl<'a> Send for Login<'a>",1,["db_core::Login"]],["impl Send for NameHash",1,["db_core::NameHash"]],["impl Send for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Send for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Send for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Send for Notification",1,["db_core::Notification"]],["impl<'a> Send for AddNotification<'a>",1,["db_core::AddNotification"]],["impl Send for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Send for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Send for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl Send for Captcha",1,["db_core::Captcha"]],["impl Send for Secret",1,["db_core::Secret"]]], -"db_sqlx_maria":[["impl Send for Database",1,["db_sqlx_maria::Database"]],["impl Send for Conn",1,["db_sqlx_maria::Conn"]],["impl Send for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Send for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Send for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]], -"db_sqlx_postgres":[["impl Send for Database",1,["db_sqlx_postgres::Database"]],["impl Send for Conn",1,["db_sqlx_postgres::Conn"]],["impl Send for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Send for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Send for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]], -"mcaptcha":[["impl Send for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Send for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Send for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Send for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Send for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Send for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Send for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Send for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Send for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Send for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Send for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Send for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Send for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Send for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Send for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Send for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Send for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Send for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Send for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Send for register",1,["mcaptcha::api::v1::auth::register"]],["impl Send for login",1,["mcaptcha::api::v1::auth::login"]],["impl Send for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Send for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Send for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Send for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Send for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Send for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Send for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Send for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Send for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Send for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Send for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Send for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Send for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Send for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Send for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Send for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Send for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Send for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Send for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Send for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Send for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Send for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Send for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Send for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Send for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Send for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Send for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Send for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Send for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Send for health",1,["mcaptcha::api::v1::meta::health"]],["impl Send for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Send for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Send for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Send for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Send for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Send for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Send for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Send for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Send for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Send for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Send for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Send for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Send for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Send for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Send for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Send for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Send for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Send for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Send for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Send for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Send for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Send for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Send for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Send for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Send for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Send for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Send for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Send for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Send for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Send for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Send for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Send for download",1,["mcaptcha::api::v1::survey::download"]],["impl Send for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Send for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Send for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Send for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Send for Data",1,["mcaptcha::data::Data"]],["impl Send for Date",1,["mcaptcha::date::Date"]],["impl Send for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Send for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Send for Asset",1,["mcaptcha::docs::Asset"]],["impl Send for dist",1,["mcaptcha::docs::dist"]],["impl Send for spec",1,["mcaptcha::docs::spec"]],["impl Send for index",1,["mcaptcha::docs::index"]],["impl Send for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl<'a> Send for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl Send for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Send for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Send for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Send for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Send for PageError",1,["mcaptcha::errors::PageError"]],["impl Send for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Send for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Send for login",1,["mcaptcha::pages::auth::login::login"]],["impl Send for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Send for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Send for join",1,["mcaptcha::pages::auth::register::join"]],["impl<'a, K, V> Send for SudoPage<'a, K, V>
    where\n K: Send,\n V: Send,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]],["impl Send for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Send for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl<'a> Send for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl Send for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Send for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Send for error",1,["mcaptcha::pages::errors::error"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Send for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Send for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Send for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl<'a> Send for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl Send for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Send for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Send for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Send for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Send for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl<'a> Send for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl Send for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl<'a> Send for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl Send for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Send for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Send for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Send for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl<'a> Send for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl Send for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Send for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Send for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Send for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Send for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Send for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Send for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Send for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Send for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Send for panel",1,["mcaptcha::pages::panel::panel"]],["impl Send for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Send for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Send for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Send for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Send for Server",1,["mcaptcha::settings::Server"]],["impl Send for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Send for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Send for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Send for DBType",1,["mcaptcha::settings::DBType"]],["impl Send for Database",1,["mcaptcha::settings::Database"]],["impl Send for Redis",1,["mcaptcha::settings::Redis"]],["impl Send for Survey",1,["mcaptcha::settings::Survey"]],["impl Send for Settings",1,["mcaptcha::settings::Settings"]],["impl Send for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Send for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Send for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Send for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Send for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Send for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Send for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Send for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Send for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Send for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Send for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Send for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Send for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Send for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Send for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Send for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Send for Real",1,["mcaptcha::stats::Real"]],["impl Send for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Send for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Send for Survey",1,["mcaptcha::survey::Survey"]],["impl Send for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Send for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Send for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Send for show_widget",1,["mcaptcha::widget::show_widget"]],["impl Send for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Send for FILES",1,["mcaptcha::FILES"]],["impl Send for JS",1,["mcaptcha::JS"]],["impl Send for CSS",1,["mcaptcha::CSS"]],["impl Send for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Send for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Send for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Send for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Send for DBError",1,["db_core::errors::DBError"]],["impl Send for Captcha",1,["db_core::Captcha"]],["impl Send for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Send for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Send for NameHash",1,["db_core::NameHash"]],["impl Send for Notification",1,["db_core::Notification"]],["impl Send for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Send for Secret",1,["db_core::Secret"]],["impl Send for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Send for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Send for Login<'a>",1,["db_core::Login"]],["impl<'a> Send for AddNotification<'a>",1,["db_core::AddNotification"]],["impl<'a> Send for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl<'a> Send for Register<'a>",1,["db_core::Register"]],["impl<'a> Send for UpdateEmail<'a>",1,["db_core::UpdateEmail"]]]],["db_sqlx_maria",[["impl Send for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Send for Conn",1,["db_sqlx_maria::Conn"]],["impl Send for Database",1,["db_sqlx_maria::Database"]],["impl Send for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Send for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]]],["db_sqlx_postgres",[["impl Send for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Send for Conn",1,["db_sqlx_postgres::Conn"]],["impl Send for Database",1,["db_sqlx_postgres::Database"]],["impl Send for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Send for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]]],["mcaptcha",[["impl Send for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Send for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Send for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Send for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Send for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Send for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Send for PageError",1,["mcaptcha::errors::PageError"]],["impl Send for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Send for DBType",1,["mcaptcha::settings::DBType"]],["impl Send for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Send for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Send for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Send for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Send for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Send for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Send for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Send for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Send for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Send for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Send for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Send for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Send for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Send for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Send for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Send for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Send for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Send for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Send for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Send for login",1,["mcaptcha::api::v1::auth::login"]],["impl Send for register",1,["mcaptcha::api::v1::auth::register"]],["impl Send for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Send for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Send for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Send for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Send for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Send for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Send for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Send for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Send for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Send for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Send for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Send for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Send for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Send for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Send for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Send for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Send for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Send for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Send for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Send for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Send for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Send for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Send for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Send for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Send for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Send for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Send for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Send for health",1,["mcaptcha::api::v1::meta::health"]],["impl Send for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Send for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Send for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Send for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Send for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Send for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Send for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Send for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Send for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Send for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Send for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Send for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Send for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Send for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Send for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Send for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Send for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Send for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Send for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Send for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Send for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Send for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Send for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Send for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Send for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Send for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Send for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Send for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Send for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Send for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Send for download",1,["mcaptcha::api::v1::survey::download"]],["impl Send for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Send for Date",1,["mcaptcha::date::Date"]],["impl Send for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Send for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Send for Asset",1,["mcaptcha::docs::Asset"]],["impl Send for dist",1,["mcaptcha::docs::dist"]],["impl Send for index",1,["mcaptcha::docs::index"]],["impl Send for spec",1,["mcaptcha::docs::spec"]],["impl Send for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl Send for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Send for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Send for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Send for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Send for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Send for login",1,["mcaptcha::pages::auth::login::login"]],["impl Send for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Send for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Send for join",1,["mcaptcha::pages::auth::register::join"]],["impl Send for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Send for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl Send for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Send for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Send for error",1,["mcaptcha::pages::errors::error"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Send for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Send for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Send for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Send for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl Send for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Send for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Send for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Send for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Send for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl Send for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl Send for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Send for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Send for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Send for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl Send for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Send for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Send for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Send for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Send for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Send for panel",1,["mcaptcha::pages::panel::panel"]],["impl Send for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Send for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Send for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Send for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Send for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Send for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Send for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Send for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Send for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Send for Database",1,["mcaptcha::settings::Database"]],["impl Send for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Send for Redis",1,["mcaptcha::settings::Redis"]],["impl Send for Server",1,["mcaptcha::settings::Server"]],["impl Send for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Send for Survey",1,["mcaptcha::settings::Survey"]],["impl Send for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Send for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Send for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Send for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Send for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Send for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Send for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Send for Real",1,["mcaptcha::stats::Real"]],["impl Send for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Send for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Send for CSS",1,["mcaptcha::CSS"]],["impl Send for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Send for Data",1,["mcaptcha::data::Data"]],["impl Send for FILES",1,["mcaptcha::FILES"]],["impl Send for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Send for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Send for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Send for JS",1,["mcaptcha::JS"]],["impl Send for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Send for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Send for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Send for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Send for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Send for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Send for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]],["impl Send for Settings",1,["mcaptcha::settings::Settings"]],["impl Send for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Send for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Send for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Send for Survey",1,["mcaptcha::survey::Survey"]],["impl Send for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Send for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Send for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Send for show_widget",1,["mcaptcha::widget::show_widget"]],["impl<'a> Send for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl<'a> Send for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl<'a> Send for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl<'a> Send for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl<'a> Send for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl<'a> Send for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl<'a, K, V> Send for SudoPage<'a, K, V>
    where\n K: Send,\n V: Send,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4508,1528,1576,66234]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.StructuralPartialEq.js b/trait.impl/core/marker/trait.StructuralPartialEq.js index 6ded0421..ddcaeb49 100644 --- a/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl<'a> StructuralPartialEq for AddNotification<'a>"],["impl<'a> StructuralPartialEq for Register<'a>"],["impl StructuralPartialEq for PerformanceAnalytics"],["impl StructuralPartialEq for TrafficPattern"],["impl<'a> StructuralPartialEq for CreateCaptcha<'a>"],["impl StructuralPartialEq for Secret"],["impl<'a> StructuralPartialEq for UpdateEmail<'a>"],["impl StructuralPartialEq for CreatePerformanceAnalytics"],["impl StructuralPartialEq for NameHash"],["impl StructuralPartialEq for Notification"],["impl StructuralPartialEq for StatsUnixTimestamp"],["impl StructuralPartialEq for EasyCaptcha"],["impl StructuralPartialEq for Captcha"],["impl<'a> StructuralPartialEq for Login<'a>"]], -"db_sqlx_maria":[["impl StructuralPartialEq for InnerNotification"]], -"db_sqlx_postgres":[["impl StructuralPartialEq for InnerNotification"]], -"mcaptcha":[["impl StructuralPartialEq for Page"],["impl StructuralPartialEq for Redis"],["impl StructuralPartialEq for DBType"],["impl StructuralPartialEq for Smtp"],["impl StructuralPartialEq for Captcha"],["impl StructuralPartialEq for Database"],["impl StructuralPartialEq for Real"],["impl StructuralPartialEq for Survey"],["impl StructuralPartialEq for CaptchaStats"],["impl StructuralPartialEq for Settings"],["impl StructuralPartialEq for Dummy"],["impl StructuralPartialEq for AddNotificationRequest"],["impl StructuralPartialEq for NotificationResp"],["impl StructuralPartialEq for Server"],["impl StructuralPartialEq for DefaultDifficultyStrategy"],["impl StructuralPartialEq for Stats"],["impl StructuralPartialEq for PageError"],["impl StructuralPartialEq for ServiceError"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl StructuralPartialEq for Captcha"],["impl StructuralPartialEq for CreatePerformanceAnalytics"],["impl StructuralPartialEq for EasyCaptcha"],["impl StructuralPartialEq for NameHash"],["impl StructuralPartialEq for Notification"],["impl StructuralPartialEq for PerformanceAnalytics"],["impl StructuralPartialEq for Secret"],["impl StructuralPartialEq for StatsUnixTimestamp"],["impl StructuralPartialEq for TrafficPattern"],["impl<'a> StructuralPartialEq for Login<'a>"],["impl<'a> StructuralPartialEq for AddNotification<'a>"],["impl<'a> StructuralPartialEq for CreateCaptcha<'a>"],["impl<'a> StructuralPartialEq for Register<'a>"],["impl<'a> StructuralPartialEq for UpdateEmail<'a>"]]],["db_sqlx_maria",[["impl StructuralPartialEq for InnerNotification"]]],["db_sqlx_postgres",[["impl StructuralPartialEq for InnerNotification"]]],["mcaptcha",[["impl StructuralPartialEq for PageError"],["impl StructuralPartialEq for ServiceError"],["impl StructuralPartialEq for DBType"],["impl StructuralPartialEq for AddNotificationRequest"],["impl StructuralPartialEq for NotificationResp"],["impl StructuralPartialEq for Stats"],["impl StructuralPartialEq for Page"],["impl StructuralPartialEq for Captcha"],["impl StructuralPartialEq for Database"],["impl StructuralPartialEq for DefaultDifficultyStrategy"],["impl StructuralPartialEq for Redis"],["impl StructuralPartialEq for Server"],["impl StructuralPartialEq for Smtp"],["impl StructuralPartialEq for Survey"],["impl StructuralPartialEq for CaptchaStats"],["impl StructuralPartialEq for Dummy"],["impl StructuralPartialEq for Real"],["impl StructuralPartialEq for Settings"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4451,356,365,5843]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Sync.js b/trait.impl/core/marker/trait.Sync.js index 8a6e221d..63fd5282 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/core/marker/trait.Sync.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Sync for DBError",1,["db_core::errors::DBError"]],["impl<'a> Sync for Register<'a>",1,["db_core::Register"]],["impl<'a> Sync for UpdateEmail<'a>",1,["db_core::UpdateEmail"]],["impl<'a> Sync for Login<'a>",1,["db_core::Login"]],["impl Sync for NameHash",1,["db_core::NameHash"]],["impl Sync for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Sync for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Sync for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Sync for Notification",1,["db_core::Notification"]],["impl<'a> Sync for AddNotification<'a>",1,["db_core::AddNotification"]],["impl Sync for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Sync for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Sync for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl Sync for Captcha",1,["db_core::Captcha"]],["impl Sync for Secret",1,["db_core::Secret"]]], -"db_sqlx_maria":[["impl Sync for Database",1,["db_sqlx_maria::Database"]],["impl Sync for Conn",1,["db_sqlx_maria::Conn"]],["impl Sync for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Sync for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Sync for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]], -"db_sqlx_postgres":[["impl Sync for Database",1,["db_sqlx_postgres::Database"]],["impl Sync for Conn",1,["db_sqlx_postgres::Conn"]],["impl Sync for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Sync for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Sync for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]], -"mcaptcha":[["impl Sync for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Sync for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Sync for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Sync for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Sync for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Sync for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Sync for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Sync for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Sync for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Sync for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Sync for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Sync for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Sync for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Sync for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Sync for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Sync for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Sync for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Sync for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Sync for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Sync for register",1,["mcaptcha::api::v1::auth::register"]],["impl Sync for login",1,["mcaptcha::api::v1::auth::login"]],["impl Sync for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Sync for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Sync for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Sync for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Sync for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Sync for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Sync for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Sync for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Sync for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Sync for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Sync for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Sync for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Sync for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Sync for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Sync for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Sync for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Sync for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Sync for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Sync for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Sync for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Sync for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Sync for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Sync for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Sync for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Sync for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Sync for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Sync for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Sync for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Sync for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Sync for health",1,["mcaptcha::api::v1::meta::health"]],["impl Sync for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Sync for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Sync for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Sync for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Sync for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Sync for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Sync for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Sync for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Sync for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Sync for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Sync for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Sync for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Sync for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Sync for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Sync for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Sync for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Sync for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Sync for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Sync for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Sync for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Sync for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Sync for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Sync for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Sync for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Sync for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Sync for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Sync for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Sync for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Sync for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Sync for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Sync for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Sync for download",1,["mcaptcha::api::v1::survey::download"]],["impl Sync for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Sync for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Sync for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Sync for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Sync for Data",1,["mcaptcha::data::Data"]],["impl Sync for Date",1,["mcaptcha::date::Date"]],["impl Sync for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Sync for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Sync for Asset",1,["mcaptcha::docs::Asset"]],["impl Sync for dist",1,["mcaptcha::docs::dist"]],["impl Sync for spec",1,["mcaptcha::docs::spec"]],["impl Sync for index",1,["mcaptcha::docs::index"]],["impl Sync for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl<'a> Sync for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl Sync for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Sync for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Sync for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Sync for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Sync for PageError",1,["mcaptcha::errors::PageError"]],["impl Sync for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Sync for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Sync for login",1,["mcaptcha::pages::auth::login::login"]],["impl Sync for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Sync for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Sync for join",1,["mcaptcha::pages::auth::register::join"]],["impl<'a, K, V> Sync for SudoPage<'a, K, V>
    where\n K: Sync,\n V: Sync,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]],["impl Sync for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Sync for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl<'a> Sync for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl Sync for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Sync for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Sync for error",1,["mcaptcha::pages::errors::error"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Sync for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Sync for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Sync for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl<'a> Sync for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl Sync for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Sync for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Sync for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Sync for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Sync for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl<'a> Sync for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl Sync for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl<'a> Sync for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl Sync for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Sync for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Sync for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Sync for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl<'a> Sync for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl Sync for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Sync for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Sync for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Sync for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Sync for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Sync for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Sync for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Sync for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Sync for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Sync for panel",1,["mcaptcha::pages::panel::panel"]],["impl Sync for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Sync for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Sync for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Sync for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Sync for Server",1,["mcaptcha::settings::Server"]],["impl Sync for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Sync for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Sync for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Sync for DBType",1,["mcaptcha::settings::DBType"]],["impl Sync for Database",1,["mcaptcha::settings::Database"]],["impl Sync for Redis",1,["mcaptcha::settings::Redis"]],["impl Sync for Survey",1,["mcaptcha::settings::Survey"]],["impl Sync for Settings",1,["mcaptcha::settings::Settings"]],["impl Sync for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Sync for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Sync for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Sync for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Sync for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Sync for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Sync for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Sync for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Sync for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Sync for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Sync for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Sync for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Sync for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Sync for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Sync for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Sync for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Sync for Real",1,["mcaptcha::stats::Real"]],["impl Sync for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Sync for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Sync for Survey",1,["mcaptcha::survey::Survey"]],["impl Sync for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Sync for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Sync for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Sync for show_widget",1,["mcaptcha::widget::show_widget"]],["impl Sync for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Sync for FILES",1,["mcaptcha::FILES"]],["impl Sync for JS",1,["mcaptcha::JS"]],["impl Sync for CSS",1,["mcaptcha::CSS"]],["impl Sync for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Sync for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Sync for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Sync for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Sync for DBError",1,["db_core::errors::DBError"]],["impl Sync for Captcha",1,["db_core::Captcha"]],["impl Sync for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Sync for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Sync for NameHash",1,["db_core::NameHash"]],["impl Sync for Notification",1,["db_core::Notification"]],["impl Sync for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Sync for Secret",1,["db_core::Secret"]],["impl Sync for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Sync for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Sync for Login<'a>",1,["db_core::Login"]],["impl<'a> Sync for AddNotification<'a>",1,["db_core::AddNotification"]],["impl<'a> Sync for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl<'a> Sync for Register<'a>",1,["db_core::Register"]],["impl<'a> Sync for UpdateEmail<'a>",1,["db_core::UpdateEmail"]]]],["db_sqlx_maria",[["impl Sync for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Sync for Conn",1,["db_sqlx_maria::Conn"]],["impl Sync for Database",1,["db_sqlx_maria::Database"]],["impl Sync for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Sync for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]]],["db_sqlx_postgres",[["impl Sync for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Sync for Conn",1,["db_sqlx_postgres::Conn"]],["impl Sync for Database",1,["db_sqlx_postgres::Database"]],["impl Sync for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Sync for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]]],["mcaptcha",[["impl Sync for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Sync for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Sync for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Sync for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Sync for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Sync for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Sync for PageError",1,["mcaptcha::errors::PageError"]],["impl Sync for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Sync for DBType",1,["mcaptcha::settings::DBType"]],["impl Sync for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Sync for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Sync for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Sync for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Sync for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Sync for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Sync for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Sync for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Sync for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Sync for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Sync for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Sync for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Sync for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Sync for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Sync for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Sync for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Sync for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Sync for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Sync for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Sync for login",1,["mcaptcha::api::v1::auth::login"]],["impl Sync for register",1,["mcaptcha::api::v1::auth::register"]],["impl Sync for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Sync for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Sync for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Sync for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Sync for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Sync for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Sync for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Sync for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Sync for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Sync for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Sync for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Sync for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Sync for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Sync for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Sync for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Sync for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Sync for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Sync for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Sync for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Sync for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Sync for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Sync for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Sync for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Sync for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Sync for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Sync for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Sync for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Sync for health",1,["mcaptcha::api::v1::meta::health"]],["impl Sync for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Sync for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Sync for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Sync for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Sync for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Sync for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Sync for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Sync for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Sync for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Sync for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Sync for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Sync for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Sync for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Sync for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Sync for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Sync for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Sync for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Sync for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Sync for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Sync for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Sync for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Sync for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Sync for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Sync for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Sync for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Sync for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Sync for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Sync for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Sync for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Sync for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Sync for download",1,["mcaptcha::api::v1::survey::download"]],["impl Sync for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Sync for Date",1,["mcaptcha::date::Date"]],["impl Sync for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Sync for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Sync for Asset",1,["mcaptcha::docs::Asset"]],["impl Sync for dist",1,["mcaptcha::docs::dist"]],["impl Sync for index",1,["mcaptcha::docs::index"]],["impl Sync for spec",1,["mcaptcha::docs::spec"]],["impl Sync for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl Sync for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Sync for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Sync for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Sync for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Sync for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Sync for login",1,["mcaptcha::pages::auth::login::login"]],["impl Sync for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Sync for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Sync for join",1,["mcaptcha::pages::auth::register::join"]],["impl Sync for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Sync for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl Sync for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Sync for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Sync for error",1,["mcaptcha::pages::errors::error"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Sync for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Sync for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Sync for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Sync for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl Sync for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Sync for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Sync for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Sync for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Sync for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl Sync for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl Sync for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Sync for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Sync for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Sync for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl Sync for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Sync for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Sync for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Sync for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Sync for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Sync for panel",1,["mcaptcha::pages::panel::panel"]],["impl Sync for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Sync for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Sync for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Sync for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Sync for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Sync for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Sync for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Sync for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Sync for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Sync for Database",1,["mcaptcha::settings::Database"]],["impl Sync for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Sync for Redis",1,["mcaptcha::settings::Redis"]],["impl Sync for Server",1,["mcaptcha::settings::Server"]],["impl Sync for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Sync for Survey",1,["mcaptcha::settings::Survey"]],["impl Sync for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Sync for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Sync for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Sync for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Sync for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Sync for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Sync for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Sync for Real",1,["mcaptcha::stats::Real"]],["impl Sync for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Sync for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Sync for CSS",1,["mcaptcha::CSS"]],["impl Sync for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Sync for Data",1,["mcaptcha::data::Data"]],["impl Sync for FILES",1,["mcaptcha::FILES"]],["impl Sync for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Sync for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Sync for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Sync for JS",1,["mcaptcha::JS"]],["impl Sync for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Sync for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Sync for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Sync for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Sync for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Sync for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Sync for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]],["impl Sync for Settings",1,["mcaptcha::settings::Settings"]],["impl Sync for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Sync for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Sync for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Sync for Survey",1,["mcaptcha::survey::Survey"]],["impl Sync for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Sync for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Sync for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Sync for show_widget",1,["mcaptcha::widget::show_widget"]],["impl<'a> Sync for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl<'a> Sync for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl<'a> Sync for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl<'a> Sync for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl<'a> Sync for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl<'a> Sync for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl<'a, K, V> Sync for SudoPage<'a, K, V>
    where\n K: Sync,\n V: Sync,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4508,1528,1576,66234]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Unpin.js b/trait.impl/core/marker/trait.Unpin.js index 9c64ada1..2684885b 100644 --- a/trait.impl/core/marker/trait.Unpin.js +++ b/trait.impl/core/marker/trait.Unpin.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl Unpin for DBError",1,["db_core::errors::DBError"]],["impl<'a> Unpin for Register<'a>",1,["db_core::Register"]],["impl<'a> Unpin for UpdateEmail<'a>",1,["db_core::UpdateEmail"]],["impl<'a> Unpin for Login<'a>",1,["db_core::Login"]],["impl Unpin for NameHash",1,["db_core::NameHash"]],["impl Unpin for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Unpin for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Unpin for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Unpin for Notification",1,["db_core::Notification"]],["impl<'a> Unpin for AddNotification<'a>",1,["db_core::AddNotification"]],["impl Unpin for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Unpin for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Unpin for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl Unpin for Captcha",1,["db_core::Captcha"]],["impl Unpin for Secret",1,["db_core::Secret"]]], -"db_sqlx_maria":[["impl Unpin for Database",1,["db_sqlx_maria::Database"]],["impl Unpin for Conn",1,["db_sqlx_maria::Conn"]],["impl Unpin for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Unpin for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Unpin for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]], -"db_sqlx_postgres":[["impl Unpin for Database",1,["db_sqlx_postgres::Database"]],["impl Unpin for Conn",1,["db_sqlx_postgres::Conn"]],["impl Unpin for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Unpin for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Unpin for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]], -"mcaptcha":[["impl Unpin for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Unpin for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Unpin for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Unpin for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Unpin for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Unpin for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Unpin for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Unpin for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Unpin for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Unpin for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Unpin for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Unpin for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Unpin for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Unpin for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Unpin for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Unpin for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Unpin for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Unpin for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Unpin for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Unpin for register",1,["mcaptcha::api::v1::auth::register"]],["impl Unpin for login",1,["mcaptcha::api::v1::auth::login"]],["impl Unpin for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Unpin for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Unpin for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Unpin for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Unpin for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Unpin for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Unpin for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Unpin for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Unpin for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Unpin for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Unpin for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Unpin for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Unpin for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Unpin for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Unpin for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Unpin for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Unpin for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Unpin for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Unpin for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Unpin for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Unpin for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Unpin for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Unpin for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Unpin for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Unpin for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Unpin for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Unpin for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Unpin for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Unpin for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Unpin for health",1,["mcaptcha::api::v1::meta::health"]],["impl Unpin for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Unpin for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Unpin for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Unpin for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Unpin for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Unpin for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Unpin for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Unpin for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Unpin for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Unpin for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Unpin for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Unpin for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Unpin for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Unpin for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Unpin for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Unpin for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Unpin for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Unpin for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Unpin for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Unpin for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Unpin for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Unpin for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Unpin for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Unpin for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Unpin for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Unpin for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Unpin for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Unpin for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Unpin for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Unpin for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Unpin for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Unpin for download",1,["mcaptcha::api::v1::survey::download"]],["impl Unpin for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Unpin for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Unpin for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Unpin for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Unpin for Data",1,["mcaptcha::data::Data"]],["impl Unpin for Date",1,["mcaptcha::date::Date"]],["impl Unpin for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Unpin for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Unpin for Asset",1,["mcaptcha::docs::Asset"]],["impl Unpin for dist",1,["mcaptcha::docs::dist"]],["impl Unpin for spec",1,["mcaptcha::docs::spec"]],["impl Unpin for index",1,["mcaptcha::docs::index"]],["impl Unpin for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl<'a> Unpin for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl Unpin for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Unpin for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Unpin for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Unpin for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Unpin for PageError",1,["mcaptcha::errors::PageError"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Unpin for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Unpin for login",1,["mcaptcha::pages::auth::login::login"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Unpin for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Unpin for join",1,["mcaptcha::pages::auth::register::join"]],["impl<'a, K, V> Unpin for SudoPage<'a, K, V>
    where\n K: Unpin,\n V: Unpin,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]],["impl Unpin for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Unpin for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl<'a> Unpin for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl Unpin for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Unpin for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Unpin for error",1,["mcaptcha::pages::errors::error"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Unpin for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Unpin for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Unpin for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl<'a> Unpin for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl Unpin for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Unpin for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Unpin for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Unpin for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Unpin for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl<'a> Unpin for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl Unpin for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl<'a> Unpin for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl Unpin for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Unpin for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Unpin for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Unpin for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl<'a> Unpin for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl Unpin for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Unpin for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Unpin for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Unpin for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Unpin for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Unpin for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Unpin for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Unpin for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Unpin for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Unpin for panel",1,["mcaptcha::pages::panel::panel"]],["impl Unpin for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Unpin for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Unpin for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Unpin for Server",1,["mcaptcha::settings::Server"]],["impl Unpin for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Unpin for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Unpin for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Unpin for DBType",1,["mcaptcha::settings::DBType"]],["impl Unpin for Database",1,["mcaptcha::settings::Database"]],["impl Unpin for Redis",1,["mcaptcha::settings::Redis"]],["impl Unpin for Survey",1,["mcaptcha::settings::Survey"]],["impl Unpin for Settings",1,["mcaptcha::settings::Settings"]],["impl Unpin for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Unpin for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Unpin for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Unpin for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Unpin for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Unpin for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Unpin for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Unpin for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Unpin for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Unpin for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Unpin for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Unpin for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Unpin for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Unpin for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Unpin for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Unpin for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Unpin for Real",1,["mcaptcha::stats::Real"]],["impl Unpin for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Unpin for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Unpin for Survey",1,["mcaptcha::survey::Survey"]],["impl Unpin for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Unpin for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Unpin for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Unpin for show_widget",1,["mcaptcha::widget::show_widget"]],["impl Unpin for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Unpin for FILES",1,["mcaptcha::FILES"]],["impl Unpin for JS",1,["mcaptcha::JS"]],["impl Unpin for CSS",1,["mcaptcha::CSS"]],["impl Unpin for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Unpin for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Unpin for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Unpin for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Unpin for DBError",1,["db_core::errors::DBError"]],["impl Unpin for Captcha",1,["db_core::Captcha"]],["impl Unpin for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl Unpin for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl Unpin for NameHash",1,["db_core::NameHash"]],["impl Unpin for Notification",1,["db_core::Notification"]],["impl Unpin for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl Unpin for Secret",1,["db_core::Secret"]],["impl Unpin for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl Unpin for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> Unpin for Login<'a>",1,["db_core::Login"]],["impl<'a> Unpin for AddNotification<'a>",1,["db_core::AddNotification"]],["impl<'a> Unpin for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl<'a> Unpin for Register<'a>",1,["db_core::Register"]],["impl<'a> Unpin for UpdateEmail<'a>",1,["db_core::UpdateEmail"]]]],["db_sqlx_maria",[["impl Unpin for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl Unpin for Conn",1,["db_sqlx_maria::Conn"]],["impl Unpin for Database",1,["db_sqlx_maria::Database"]],["impl Unpin for Fresh",1,["db_sqlx_maria::Fresh"]],["impl Unpin for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]]],["db_sqlx_postgres",[["impl Unpin for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl Unpin for Conn",1,["db_sqlx_postgres::Conn"]],["impl Unpin for Database",1,["db_sqlx_postgres::Database"]],["impl Unpin for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl Unpin for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]]],["mcaptcha",[["impl Unpin for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl Unpin for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl Unpin for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl Unpin for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl Unpin for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl Unpin for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl Unpin for PageError",1,["mcaptcha::errors::PageError"]],["impl Unpin for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl Unpin for DBType",1,["mcaptcha::settings::DBType"]],["impl Unpin for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl Unpin for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl Unpin for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl Unpin for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl Unpin for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl Unpin for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl Unpin for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl Unpin for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl Unpin for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl Unpin for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl Unpin for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl Unpin for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl Unpin for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl Unpin for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl Unpin for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl Unpin for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl Unpin for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl Unpin for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl Unpin for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl Unpin for login",1,["mcaptcha::api::v1::auth::login"]],["impl Unpin for register",1,["mcaptcha::api::v1::auth::register"]],["impl Unpin for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl Unpin for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl Unpin for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl Unpin for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl Unpin for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl Unpin for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl Unpin for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl Unpin for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl Unpin for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl Unpin for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl Unpin for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl Unpin for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl Unpin for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl Unpin for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl Unpin for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl Unpin for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl Unpin for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl Unpin for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl Unpin for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl Unpin for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl Unpin for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl Unpin for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl Unpin for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl Unpin for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl Unpin for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl Unpin for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl Unpin for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl Unpin for health",1,["mcaptcha::api::v1::meta::health"]],["impl Unpin for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl Unpin for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl Unpin for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl Unpin for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl Unpin for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl Unpin for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl Unpin for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl Unpin for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl Unpin for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl Unpin for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl Unpin for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl Unpin for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl Unpin for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl Unpin for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl Unpin for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl Unpin for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl Unpin for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl Unpin for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl Unpin for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl Unpin for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl Unpin for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl Unpin for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl Unpin for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl Unpin for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl Unpin for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl Unpin for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl Unpin for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl Unpin for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl Unpin for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl Unpin for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl Unpin for download",1,["mcaptcha::api::v1::survey::download"]],["impl Unpin for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl Unpin for Date",1,["mcaptcha::date::Date"]],["impl Unpin for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl Unpin for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl Unpin for Asset",1,["mcaptcha::docs::Asset"]],["impl Unpin for dist",1,["mcaptcha::docs::dist"]],["impl Unpin for index",1,["mcaptcha::docs::index"]],["impl Unpin for spec",1,["mcaptcha::docs::spec"]],["impl Unpin for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl Unpin for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl Unpin for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl Unpin for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl Unpin for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl Unpin for login",1,["mcaptcha::pages::auth::login::login"]],["impl Unpin for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl Unpin for join",1,["mcaptcha::pages::auth::register::join"]],["impl Unpin for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl Unpin for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl Unpin for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl Unpin for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl Unpin for error",1,["mcaptcha::pages::errors::error"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl Unpin for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl Unpin for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl Unpin for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl Unpin for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl Unpin for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl Unpin for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl Unpin for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl Unpin for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl Unpin for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl Unpin for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl Unpin for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl Unpin for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl Unpin for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl Unpin for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl Unpin for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl Unpin for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl Unpin for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl Unpin for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl Unpin for panel",1,["mcaptcha::pages::panel::panel"]],["impl Unpin for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl Unpin for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl Unpin for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl Unpin for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl Unpin for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl Unpin for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl Unpin for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl Unpin for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl Unpin for Captcha",1,["mcaptcha::settings::Captcha"]],["impl Unpin for Database",1,["mcaptcha::settings::Database"]],["impl Unpin for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl Unpin for Redis",1,["mcaptcha::settings::Redis"]],["impl Unpin for Server",1,["mcaptcha::settings::Server"]],["impl Unpin for Smtp",1,["mcaptcha::settings::Smtp"]],["impl Unpin for Survey",1,["mcaptcha::settings::Survey"]],["impl Unpin for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl Unpin for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl Unpin for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl Unpin for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl Unpin for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl Unpin for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl Unpin for Dummy",1,["mcaptcha::stats::Dummy"]],["impl Unpin for Real",1,["mcaptcha::stats::Real"]],["impl Unpin for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl Unpin for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl Unpin for CSS",1,["mcaptcha::CSS"]],["impl Unpin for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl Unpin for Data",1,["mcaptcha::data::Data"]],["impl Unpin for FILES",1,["mcaptcha::FILES"]],["impl Unpin for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl Unpin for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl Unpin for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl Unpin for JS",1,["mcaptcha::JS"]],["impl Unpin for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl Unpin for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl Unpin for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl Unpin for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl Unpin for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl Unpin for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl Unpin for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]],["impl Unpin for Settings",1,["mcaptcha::settings::Settings"]],["impl Unpin for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl Unpin for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl Unpin for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl Unpin for Survey",1,["mcaptcha::survey::Survey"]],["impl Unpin for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl Unpin for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl Unpin for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl Unpin for show_widget",1,["mcaptcha::widget::show_widget"]],["impl<'a> Unpin for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl<'a> Unpin for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl<'a> Unpin for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl<'a> Unpin for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl<'a> Unpin for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl<'a> Unpin for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl<'a, K, V> Unpin for SudoPage<'a, K, V>
    where\n K: Unpin,\n V: Unpin,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4553,1543,1591,66813]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.UnsafeUnpin.js b/trait.impl/core/marker/trait.UnsafeUnpin.js new file mode 100644 index 00000000..9c79500b --- /dev/null +++ b/trait.impl/core/marker/trait.UnsafeUnpin.js @@ -0,0 +1,9 @@ +(function() { + var implementors = Object.fromEntries([["db_core",[["impl UnsafeUnpin for DBError",1,["db_core::errors::DBError"]],["impl UnsafeUnpin for Captcha",1,["db_core::Captcha"]],["impl UnsafeUnpin for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl UnsafeUnpin for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl UnsafeUnpin for NameHash",1,["db_core::NameHash"]],["impl UnsafeUnpin for Notification",1,["db_core::Notification"]],["impl UnsafeUnpin for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl UnsafeUnpin for Secret",1,["db_core::Secret"]],["impl UnsafeUnpin for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl UnsafeUnpin for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> UnsafeUnpin for Login<'a>",1,["db_core::Login"]],["impl<'a> UnsafeUnpin for AddNotification<'a>",1,["db_core::AddNotification"]],["impl<'a> UnsafeUnpin for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl<'a> UnsafeUnpin for Register<'a>",1,["db_core::Register"]],["impl<'a> UnsafeUnpin for UpdateEmail<'a>",1,["db_core::UpdateEmail"]]]],["db_sqlx_maria",[["impl UnsafeUnpin for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl UnsafeUnpin for Conn",1,["db_sqlx_maria::Conn"]],["impl UnsafeUnpin for Database",1,["db_sqlx_maria::Database"]],["impl UnsafeUnpin for Fresh",1,["db_sqlx_maria::Fresh"]],["impl UnsafeUnpin for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]]],["db_sqlx_postgres",[["impl UnsafeUnpin for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl UnsafeUnpin for Conn",1,["db_sqlx_postgres::Conn"]],["impl UnsafeUnpin for Database",1,["db_sqlx_postgres::Database"]],["impl UnsafeUnpin for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl UnsafeUnpin for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]]],["mcaptcha",[["impl UnsafeUnpin for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl UnsafeUnpin for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl UnsafeUnpin for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl UnsafeUnpin for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl UnsafeUnpin for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl UnsafeUnpin for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl UnsafeUnpin for PageError",1,["mcaptcha::errors::PageError"]],["impl UnsafeUnpin for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl UnsafeUnpin for DBType",1,["mcaptcha::settings::DBType"]],["impl UnsafeUnpin for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl UnsafeUnpin for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl UnsafeUnpin for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl UnsafeUnpin for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl UnsafeUnpin for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl UnsafeUnpin for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl UnsafeUnpin for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl UnsafeUnpin for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl UnsafeUnpin for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl UnsafeUnpin for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl UnsafeUnpin for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl UnsafeUnpin for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl UnsafeUnpin for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl UnsafeUnpin for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl UnsafeUnpin for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl UnsafeUnpin for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl UnsafeUnpin for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl UnsafeUnpin for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl UnsafeUnpin for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl UnsafeUnpin for login",1,["mcaptcha::api::v1::auth::login"]],["impl UnsafeUnpin for register",1,["mcaptcha::api::v1::auth::register"]],["impl UnsafeUnpin for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl UnsafeUnpin for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl UnsafeUnpin for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl UnsafeUnpin for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl UnsafeUnpin for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl UnsafeUnpin for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl UnsafeUnpin for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl UnsafeUnpin for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl UnsafeUnpin for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl UnsafeUnpin for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl UnsafeUnpin for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl UnsafeUnpin for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl UnsafeUnpin for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl UnsafeUnpin for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl UnsafeUnpin for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl UnsafeUnpin for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl UnsafeUnpin for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl UnsafeUnpin for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl UnsafeUnpin for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl UnsafeUnpin for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl UnsafeUnpin for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl UnsafeUnpin for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl UnsafeUnpin for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl UnsafeUnpin for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl UnsafeUnpin for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl UnsafeUnpin for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl UnsafeUnpin for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl UnsafeUnpin for health",1,["mcaptcha::api::v1::meta::health"]],["impl UnsafeUnpin for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl UnsafeUnpin for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl UnsafeUnpin for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl UnsafeUnpin for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl UnsafeUnpin for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl UnsafeUnpin for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl UnsafeUnpin for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl UnsafeUnpin for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl UnsafeUnpin for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl UnsafeUnpin for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl UnsafeUnpin for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl UnsafeUnpin for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl UnsafeUnpin for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl UnsafeUnpin for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl UnsafeUnpin for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl UnsafeUnpin for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl UnsafeUnpin for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl UnsafeUnpin for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl UnsafeUnpin for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl UnsafeUnpin for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl UnsafeUnpin for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl UnsafeUnpin for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl UnsafeUnpin for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl UnsafeUnpin for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl UnsafeUnpin for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl UnsafeUnpin for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl UnsafeUnpin for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl UnsafeUnpin for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl UnsafeUnpin for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl UnsafeUnpin for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl UnsafeUnpin for download",1,["mcaptcha::api::v1::survey::download"]],["impl UnsafeUnpin for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl UnsafeUnpin for Date",1,["mcaptcha::date::Date"]],["impl UnsafeUnpin for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl UnsafeUnpin for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl UnsafeUnpin for Asset",1,["mcaptcha::docs::Asset"]],["impl UnsafeUnpin for dist",1,["mcaptcha::docs::dist"]],["impl UnsafeUnpin for index",1,["mcaptcha::docs::index"]],["impl UnsafeUnpin for spec",1,["mcaptcha::docs::spec"]],["impl UnsafeUnpin for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl UnsafeUnpin for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl UnsafeUnpin for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl UnsafeUnpin for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl UnsafeUnpin for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl UnsafeUnpin for login",1,["mcaptcha::pages::auth::login::login"]],["impl UnsafeUnpin for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl UnsafeUnpin for join",1,["mcaptcha::pages::auth::register::join"]],["impl UnsafeUnpin for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl UnsafeUnpin for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl UnsafeUnpin for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl UnsafeUnpin for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl UnsafeUnpin for error",1,["mcaptcha::pages::errors::error"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl UnsafeUnpin for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl UnsafeUnpin for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl UnsafeUnpin for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl UnsafeUnpin for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl UnsafeUnpin for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl UnsafeUnpin for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl UnsafeUnpin for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl UnsafeUnpin for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl UnsafeUnpin for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl UnsafeUnpin for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl UnsafeUnpin for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl UnsafeUnpin for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl UnsafeUnpin for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl UnsafeUnpin for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl UnsafeUnpin for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl UnsafeUnpin for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl UnsafeUnpin for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl UnsafeUnpin for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl UnsafeUnpin for panel",1,["mcaptcha::pages::panel::panel"]],["impl UnsafeUnpin for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl UnsafeUnpin for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl UnsafeUnpin for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl UnsafeUnpin for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl UnsafeUnpin for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl UnsafeUnpin for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl UnsafeUnpin for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl UnsafeUnpin for Captcha",1,["mcaptcha::settings::Captcha"]],["impl UnsafeUnpin for Database",1,["mcaptcha::settings::Database"]],["impl UnsafeUnpin for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl UnsafeUnpin for Redis",1,["mcaptcha::settings::Redis"]],["impl UnsafeUnpin for Server",1,["mcaptcha::settings::Server"]],["impl UnsafeUnpin for Smtp",1,["mcaptcha::settings::Smtp"]],["impl UnsafeUnpin for Survey",1,["mcaptcha::settings::Survey"]],["impl UnsafeUnpin for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl UnsafeUnpin for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl UnsafeUnpin for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl UnsafeUnpin for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl UnsafeUnpin for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl UnsafeUnpin for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl UnsafeUnpin for Dummy",1,["mcaptcha::stats::Dummy"]],["impl UnsafeUnpin for Real",1,["mcaptcha::stats::Real"]],["impl UnsafeUnpin for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl UnsafeUnpin for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl UnsafeUnpin for CSS",1,["mcaptcha::CSS"]],["impl UnsafeUnpin for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl UnsafeUnpin for Data",1,["mcaptcha::data::Data"]],["impl UnsafeUnpin for FILES",1,["mcaptcha::FILES"]],["impl UnsafeUnpin for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl UnsafeUnpin for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl UnsafeUnpin for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl UnsafeUnpin for JS",1,["mcaptcha::JS"]],["impl UnsafeUnpin for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl UnsafeUnpin for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl UnsafeUnpin for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl UnsafeUnpin for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl UnsafeUnpin for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl UnsafeUnpin for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl UnsafeUnpin for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]],["impl UnsafeUnpin for Settings",1,["mcaptcha::settings::Settings"]],["impl UnsafeUnpin for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl UnsafeUnpin for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl UnsafeUnpin for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl UnsafeUnpin for Survey",1,["mcaptcha::survey::Survey"]],["impl UnsafeUnpin for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl UnsafeUnpin for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl UnsafeUnpin for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl UnsafeUnpin for show_widget",1,["mcaptcha::widget::show_widget"]],["impl<'a> UnsafeUnpin for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl<'a> UnsafeUnpin for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl<'a> UnsafeUnpin for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl<'a> UnsafeUnpin for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl<'a> UnsafeUnpin for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl<'a> UnsafeUnpin for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl<'a, K, V> UnsafeUnpin for SudoPage<'a, K, V>",1,["mcaptcha::pages::auth::sudo::SudoPage"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[2693,923,971,69929]} \ No newline at end of file diff --git a/trait.impl/core/ops/deref/trait.Deref.js b/trait.impl/core/ops/deref/trait.Deref.js index f73b45b0..e4ef280d 100644 --- a/trait.impl/core/ops/deref/trait.Deref.js +++ b/trait.impl/core/ops/deref/trait.Deref.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl Deref for INDEX_PAGE"],["impl Deref for SETTINGS"],["impl Deref for VERIFICATIN_WIDGET_CSS"],["impl Deref for MOBILE_CSS"],["impl Deref for MCAPTCHA_TRANS_ICON"],["impl Deref for HELP_CIRCLE"],["impl Deref for INDEX"],["impl Deref for CREDIT_CARD"],["impl Deref for FILES"],["impl Deref for ADVANCE_INDEX"],["impl Deref for INTERNAL_SERVER_ERROR_BODY"],["impl Deref for CSS"],["impl Deref for UNKNOWN_ERROR_BODY"],["impl Deref for DOCS_ICON"],["impl Deref for BAR_CHART"],["impl Deref for SETTINGS_ICON"],["impl Deref for VERIFICATIN_WIDGET_JS"],["impl Deref for SOURCE_FILES_OF_INSTANCE"],["impl Deref for KEY"],["impl Deref for EASY_INDEX"],["impl Deref for INDEX"],["impl Deref for MESSAGE"],["impl Deref for HOME"],["impl Deref for INDEX"],["impl Deref for GITHUB"],["impl Deref for JS"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl Deref for INDEX"],["impl Deref for INDEX"],["impl Deref for INTERNAL_SERVER_ERROR_BODY"],["impl Deref for UNKNOWN_ERROR_BODY"],["impl Deref for ADVANCE_INDEX"],["impl Deref for EASY_INDEX"],["impl Deref for INDEX"],["impl Deref for BAR_CHART"],["impl Deref for CREDIT_CARD"],["impl Deref for CSS"],["impl Deref for DOCS_ICON"],["impl Deref for FILES"],["impl Deref for GITHUB"],["impl Deref for HELP_CIRCLE"],["impl Deref for HOME"],["impl Deref for JS"],["impl Deref for KEY"],["impl Deref for MCAPTCHA_TRANS_ICON"],["impl Deref for MESSAGE"],["impl Deref for MOBILE_CSS"],["impl Deref for SETTINGS"],["impl Deref for SETTINGS_ICON"],["impl Deref for SOURCE_FILES_OF_INSTANCE"],["impl Deref for VERIFICATIN_WIDGET_CSS"],["impl Deref for VERIFICATIN_WIDGET_JS"],["impl Deref for INDEX_PAGE"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[7376]} \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index d2acafa5..a52f53c7 100644 --- a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl !RefUnwindSafe for DBError",1,["db_core::errors::DBError"]],["impl<'a> RefUnwindSafe for Register<'a>",1,["db_core::Register"]],["impl<'a> RefUnwindSafe for UpdateEmail<'a>",1,["db_core::UpdateEmail"]],["impl<'a> RefUnwindSafe for Login<'a>",1,["db_core::Login"]],["impl RefUnwindSafe for NameHash",1,["db_core::NameHash"]],["impl RefUnwindSafe for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl RefUnwindSafe for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl RefUnwindSafe for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl RefUnwindSafe for Notification",1,["db_core::Notification"]],["impl<'a> RefUnwindSafe for AddNotification<'a>",1,["db_core::AddNotification"]],["impl RefUnwindSafe for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl RefUnwindSafe for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> RefUnwindSafe for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl RefUnwindSafe for Captcha",1,["db_core::Captcha"]],["impl RefUnwindSafe for Secret",1,["db_core::Secret"]]], -"db_sqlx_maria":[["impl !RefUnwindSafe for Database",1,["db_sqlx_maria::Database"]],["impl !RefUnwindSafe for Conn",1,["db_sqlx_maria::Conn"]],["impl !RefUnwindSafe for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl !RefUnwindSafe for Fresh",1,["db_sqlx_maria::Fresh"]],["impl RefUnwindSafe for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]], -"db_sqlx_postgres":[["impl !RefUnwindSafe for Database",1,["db_sqlx_postgres::Database"]],["impl !RefUnwindSafe for Conn",1,["db_sqlx_postgres::Conn"]],["impl !RefUnwindSafe for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl !RefUnwindSafe for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl RefUnwindSafe for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]], -"mcaptcha":[["impl RefUnwindSafe for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl RefUnwindSafe for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl RefUnwindSafe for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl RefUnwindSafe for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl RefUnwindSafe for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl RefUnwindSafe for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl RefUnwindSafe for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl RefUnwindSafe for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl RefUnwindSafe for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl RefUnwindSafe for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl RefUnwindSafe for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl RefUnwindSafe for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl RefUnwindSafe for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl RefUnwindSafe for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl RefUnwindSafe for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl RefUnwindSafe for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl RefUnwindSafe for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl RefUnwindSafe for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl RefUnwindSafe for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl RefUnwindSafe for register",1,["mcaptcha::api::v1::auth::register"]],["impl RefUnwindSafe for login",1,["mcaptcha::api::v1::auth::login"]],["impl RefUnwindSafe for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl RefUnwindSafe for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl RefUnwindSafe for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl RefUnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl RefUnwindSafe for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl RefUnwindSafe for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl RefUnwindSafe for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl RefUnwindSafe for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl RefUnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl RefUnwindSafe for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl RefUnwindSafe for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl RefUnwindSafe for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl RefUnwindSafe for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl RefUnwindSafe for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl RefUnwindSafe for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl RefUnwindSafe for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl RefUnwindSafe for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl RefUnwindSafe for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl RefUnwindSafe for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl RefUnwindSafe for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl RefUnwindSafe for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl RefUnwindSafe for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl RefUnwindSafe for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl RefUnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl RefUnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl RefUnwindSafe for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl RefUnwindSafe for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl RefUnwindSafe for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl RefUnwindSafe for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl RefUnwindSafe for health",1,["mcaptcha::api::v1::meta::health"]],["impl RefUnwindSafe for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl RefUnwindSafe for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl RefUnwindSafe for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl RefUnwindSafe for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl RefUnwindSafe for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl RefUnwindSafe for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl RefUnwindSafe for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl RefUnwindSafe for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl RefUnwindSafe for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl RefUnwindSafe for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl RefUnwindSafe for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl RefUnwindSafe for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl RefUnwindSafe for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl RefUnwindSafe for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl RefUnwindSafe for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl RefUnwindSafe for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl RefUnwindSafe for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl RefUnwindSafe for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl RefUnwindSafe for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl RefUnwindSafe for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl RefUnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl RefUnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl RefUnwindSafe for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl RefUnwindSafe for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl RefUnwindSafe for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl RefUnwindSafe for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl RefUnwindSafe for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl RefUnwindSafe for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl RefUnwindSafe for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl RefUnwindSafe for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl RefUnwindSafe for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl RefUnwindSafe for download",1,["mcaptcha::api::v1::survey::download"]],["impl RefUnwindSafe for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl RefUnwindSafe for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl RefUnwindSafe for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl !RefUnwindSafe for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl !RefUnwindSafe for Data",1,["mcaptcha::data::Data"]],["impl RefUnwindSafe for Date",1,["mcaptcha::date::Date"]],["impl !RefUnwindSafe for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl RefUnwindSafe for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl RefUnwindSafe for Asset",1,["mcaptcha::docs::Asset"]],["impl RefUnwindSafe for dist",1,["mcaptcha::docs::dist"]],["impl RefUnwindSafe for spec",1,["mcaptcha::docs::spec"]],["impl RefUnwindSafe for index",1,["mcaptcha::docs::index"]],["impl !RefUnwindSafe for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl<'a> RefUnwindSafe for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl !RefUnwindSafe for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl !RefUnwindSafe for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl !RefUnwindSafe for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl RefUnwindSafe for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl !RefUnwindSafe for PageError",1,["mcaptcha::errors::PageError"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl RefUnwindSafe for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl RefUnwindSafe for login",1,["mcaptcha::pages::auth::login::login"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl RefUnwindSafe for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl RefUnwindSafe for join",1,["mcaptcha::pages::auth::register::join"]],["impl<'a, K, V> RefUnwindSafe for SudoPage<'a, K, V>
    where\n K: RefUnwindSafe,\n V: RefUnwindSafe,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]],["impl RefUnwindSafe for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl RefUnwindSafe for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl<'a> RefUnwindSafe for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl RefUnwindSafe for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl RefUnwindSafe for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl RefUnwindSafe for error",1,["mcaptcha::pages::errors::error"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl RefUnwindSafe for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl RefUnwindSafe for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl RefUnwindSafe for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl<'a> RefUnwindSafe for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl RefUnwindSafe for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl RefUnwindSafe for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl RefUnwindSafe for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl RefUnwindSafe for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl RefUnwindSafe for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl<'a> RefUnwindSafe for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl RefUnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl<'a> RefUnwindSafe for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl RefUnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl RefUnwindSafe for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl RefUnwindSafe for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl RefUnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl<'a> RefUnwindSafe for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl RefUnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl RefUnwindSafe for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl RefUnwindSafe for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl RefUnwindSafe for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl RefUnwindSafe for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl RefUnwindSafe for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl RefUnwindSafe for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl RefUnwindSafe for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl RefUnwindSafe for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl RefUnwindSafe for panel",1,["mcaptcha::pages::panel::panel"]],["impl RefUnwindSafe for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl RefUnwindSafe for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl RefUnwindSafe for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl RefUnwindSafe for Server",1,["mcaptcha::settings::Server"]],["impl RefUnwindSafe for Captcha",1,["mcaptcha::settings::Captcha"]],["impl RefUnwindSafe for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl RefUnwindSafe for Smtp",1,["mcaptcha::settings::Smtp"]],["impl RefUnwindSafe for DBType",1,["mcaptcha::settings::DBType"]],["impl RefUnwindSafe for Database",1,["mcaptcha::settings::Database"]],["impl RefUnwindSafe for Redis",1,["mcaptcha::settings::Redis"]],["impl RefUnwindSafe for Survey",1,["mcaptcha::settings::Survey"]],["impl RefUnwindSafe for Settings",1,["mcaptcha::settings::Settings"]],["impl RefUnwindSafe for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl RefUnwindSafe for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl RefUnwindSafe for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl RefUnwindSafe for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl RefUnwindSafe for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl RefUnwindSafe for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl RefUnwindSafe for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl RefUnwindSafe for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl RefUnwindSafe for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl RefUnwindSafe for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl RefUnwindSafe for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl RefUnwindSafe for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl RefUnwindSafe for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl RefUnwindSafe for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl RefUnwindSafe for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl RefUnwindSafe for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl RefUnwindSafe for Real",1,["mcaptcha::stats::Real"]],["impl RefUnwindSafe for Dummy",1,["mcaptcha::stats::Dummy"]],["impl RefUnwindSafe for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl !RefUnwindSafe for Survey",1,["mcaptcha::survey::Survey"]],["impl RefUnwindSafe for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl RefUnwindSafe for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl RefUnwindSafe for show_widget",1,["mcaptcha::widget::show_widget"]],["impl RefUnwindSafe for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl RefUnwindSafe for FILES",1,["mcaptcha::FILES"]],["impl RefUnwindSafe for JS",1,["mcaptcha::JS"]],["impl RefUnwindSafe for CSS",1,["mcaptcha::CSS"]],["impl RefUnwindSafe for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl RefUnwindSafe for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl RefUnwindSafe for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl RefUnwindSafe for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl !RefUnwindSafe for DBError",1,["db_core::errors::DBError"]],["impl RefUnwindSafe for Captcha",1,["db_core::Captcha"]],["impl RefUnwindSafe for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl RefUnwindSafe for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl RefUnwindSafe for NameHash",1,["db_core::NameHash"]],["impl RefUnwindSafe for Notification",1,["db_core::Notification"]],["impl RefUnwindSafe for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl RefUnwindSafe for Secret",1,["db_core::Secret"]],["impl RefUnwindSafe for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl RefUnwindSafe for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> RefUnwindSafe for Login<'a>",1,["db_core::Login"]],["impl<'a> RefUnwindSafe for AddNotification<'a>",1,["db_core::AddNotification"]],["impl<'a> RefUnwindSafe for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl<'a> RefUnwindSafe for Register<'a>",1,["db_core::Register"]],["impl<'a> RefUnwindSafe for UpdateEmail<'a>",1,["db_core::UpdateEmail"]]]],["db_sqlx_maria",[["impl !RefUnwindSafe for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl !RefUnwindSafe for Conn",1,["db_sqlx_maria::Conn"]],["impl !RefUnwindSafe for Database",1,["db_sqlx_maria::Database"]],["impl !RefUnwindSafe for Fresh",1,["db_sqlx_maria::Fresh"]],["impl RefUnwindSafe for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]]],["db_sqlx_postgres",[["impl !RefUnwindSafe for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl !RefUnwindSafe for Conn",1,["db_sqlx_postgres::Conn"]],["impl !RefUnwindSafe for Database",1,["db_sqlx_postgres::Database"]],["impl !RefUnwindSafe for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl RefUnwindSafe for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]]],["mcaptcha",[["impl !RefUnwindSafe for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl !RefUnwindSafe for PageError",1,["mcaptcha::errors::PageError"]],["impl !RefUnwindSafe for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl !RefUnwindSafe for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl !RefUnwindSafe for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl !RefUnwindSafe for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl !RefUnwindSafe for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl !RefUnwindSafe for Data",1,["mcaptcha::data::Data"]],["impl !RefUnwindSafe for Survey",1,["mcaptcha::survey::Survey"]],["impl RefUnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl RefUnwindSafe for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl RefUnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl RefUnwindSafe for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl RefUnwindSafe for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl RefUnwindSafe for DBType",1,["mcaptcha::settings::DBType"]],["impl RefUnwindSafe for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl RefUnwindSafe for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl RefUnwindSafe for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl RefUnwindSafe for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl RefUnwindSafe for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl RefUnwindSafe for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl RefUnwindSafe for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl RefUnwindSafe for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl RefUnwindSafe for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl RefUnwindSafe for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl RefUnwindSafe for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl RefUnwindSafe for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl RefUnwindSafe for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl RefUnwindSafe for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl RefUnwindSafe for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl RefUnwindSafe for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl RefUnwindSafe for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl RefUnwindSafe for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl RefUnwindSafe for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl RefUnwindSafe for login",1,["mcaptcha::api::v1::auth::login"]],["impl RefUnwindSafe for register",1,["mcaptcha::api::v1::auth::register"]],["impl RefUnwindSafe for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl RefUnwindSafe for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl RefUnwindSafe for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl RefUnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl RefUnwindSafe for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl RefUnwindSafe for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl RefUnwindSafe for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl RefUnwindSafe for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl RefUnwindSafe for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl RefUnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl RefUnwindSafe for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl RefUnwindSafe for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl RefUnwindSafe for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl RefUnwindSafe for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl RefUnwindSafe for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl RefUnwindSafe for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl RefUnwindSafe for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl RefUnwindSafe for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl RefUnwindSafe for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl RefUnwindSafe for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl RefUnwindSafe for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl RefUnwindSafe for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl RefUnwindSafe for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl RefUnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl RefUnwindSafe for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl RefUnwindSafe for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl RefUnwindSafe for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl RefUnwindSafe for health",1,["mcaptcha::api::v1::meta::health"]],["impl RefUnwindSafe for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl RefUnwindSafe for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl RefUnwindSafe for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl RefUnwindSafe for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl RefUnwindSafe for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl RefUnwindSafe for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl RefUnwindSafe for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl RefUnwindSafe for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl RefUnwindSafe for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl RefUnwindSafe for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl RefUnwindSafe for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl RefUnwindSafe for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl RefUnwindSafe for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl RefUnwindSafe for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl RefUnwindSafe for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl RefUnwindSafe for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl RefUnwindSafe for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl RefUnwindSafe for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl RefUnwindSafe for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl RefUnwindSafe for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl RefUnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl RefUnwindSafe for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl RefUnwindSafe for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl RefUnwindSafe for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl RefUnwindSafe for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl RefUnwindSafe for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl RefUnwindSafe for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl RefUnwindSafe for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl RefUnwindSafe for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl RefUnwindSafe for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl RefUnwindSafe for download",1,["mcaptcha::api::v1::survey::download"]],["impl RefUnwindSafe for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl RefUnwindSafe for Date",1,["mcaptcha::date::Date"]],["impl RefUnwindSafe for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl RefUnwindSafe for Asset",1,["mcaptcha::docs::Asset"]],["impl RefUnwindSafe for dist",1,["mcaptcha::docs::dist"]],["impl RefUnwindSafe for index",1,["mcaptcha::docs::index"]],["impl RefUnwindSafe for spec",1,["mcaptcha::docs::spec"]],["impl RefUnwindSafe for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl RefUnwindSafe for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl RefUnwindSafe for login",1,["mcaptcha::pages::auth::login::login"]],["impl RefUnwindSafe for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl RefUnwindSafe for join",1,["mcaptcha::pages::auth::register::join"]],["impl RefUnwindSafe for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl RefUnwindSafe for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl RefUnwindSafe for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl RefUnwindSafe for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl RefUnwindSafe for error",1,["mcaptcha::pages::errors::error"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl RefUnwindSafe for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl RefUnwindSafe for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl RefUnwindSafe for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl RefUnwindSafe for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl RefUnwindSafe for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl RefUnwindSafe for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl RefUnwindSafe for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl RefUnwindSafe for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl RefUnwindSafe for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl RefUnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl RefUnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl RefUnwindSafe for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl RefUnwindSafe for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl RefUnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl RefUnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl RefUnwindSafe for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl RefUnwindSafe for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl RefUnwindSafe for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl RefUnwindSafe for panel",1,["mcaptcha::pages::panel::panel"]],["impl RefUnwindSafe for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl RefUnwindSafe for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl RefUnwindSafe for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl RefUnwindSafe for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl RefUnwindSafe for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl RefUnwindSafe for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl RefUnwindSafe for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl RefUnwindSafe for Captcha",1,["mcaptcha::settings::Captcha"]],["impl RefUnwindSafe for Database",1,["mcaptcha::settings::Database"]],["impl RefUnwindSafe for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl RefUnwindSafe for Redis",1,["mcaptcha::settings::Redis"]],["impl RefUnwindSafe for Server",1,["mcaptcha::settings::Server"]],["impl RefUnwindSafe for Smtp",1,["mcaptcha::settings::Smtp"]],["impl RefUnwindSafe for Survey",1,["mcaptcha::settings::Survey"]],["impl RefUnwindSafe for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl RefUnwindSafe for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl RefUnwindSafe for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl RefUnwindSafe for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl RefUnwindSafe for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl RefUnwindSafe for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl RefUnwindSafe for Dummy",1,["mcaptcha::stats::Dummy"]],["impl RefUnwindSafe for Real",1,["mcaptcha::stats::Real"]],["impl RefUnwindSafe for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl RefUnwindSafe for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl RefUnwindSafe for CSS",1,["mcaptcha::CSS"]],["impl RefUnwindSafe for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl RefUnwindSafe for FILES",1,["mcaptcha::FILES"]],["impl RefUnwindSafe for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl RefUnwindSafe for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl RefUnwindSafe for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl RefUnwindSafe for JS",1,["mcaptcha::JS"]],["impl RefUnwindSafe for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl RefUnwindSafe for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl RefUnwindSafe for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl RefUnwindSafe for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl RefUnwindSafe for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl RefUnwindSafe for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl RefUnwindSafe for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]],["impl RefUnwindSafe for Settings",1,["mcaptcha::settings::Settings"]],["impl RefUnwindSafe for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl RefUnwindSafe for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl RefUnwindSafe for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl RefUnwindSafe for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl RefUnwindSafe for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl RefUnwindSafe for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl RefUnwindSafe for show_widget",1,["mcaptcha::widget::show_widget"]],["impl<'a> RefUnwindSafe for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl<'a> RefUnwindSafe for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl<'a> RefUnwindSafe for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl<'a> RefUnwindSafe for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl<'a> RefUnwindSafe for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl<'a> RefUnwindSafe for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl<'a, K, V> RefUnwindSafe for SudoPage<'a, K, V>
    where\n K: RefUnwindSafe,\n V: RefUnwindSafe,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[5259,1782,1830,75893]} \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 3ff1f064..3ab5aa11 100644 --- a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,6 +1,9 @@ -(function() {var implementors = { -"db_core":[["impl !UnwindSafe for DBError",1,["db_core::errors::DBError"]],["impl<'a> UnwindSafe for Register<'a>",1,["db_core::Register"]],["impl<'a> UnwindSafe for UpdateEmail<'a>",1,["db_core::UpdateEmail"]],["impl<'a> UnwindSafe for Login<'a>",1,["db_core::Login"]],["impl UnwindSafe for NameHash",1,["db_core::NameHash"]],["impl UnwindSafe for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl UnwindSafe for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl UnwindSafe for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl UnwindSafe for Notification",1,["db_core::Notification"]],["impl<'a> UnwindSafe for AddNotification<'a>",1,["db_core::AddNotification"]],["impl UnwindSafe for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl UnwindSafe for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> UnwindSafe for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl UnwindSafe for Captcha",1,["db_core::Captcha"]],["impl UnwindSafe for Secret",1,["db_core::Secret"]]], -"db_sqlx_maria":[["impl !UnwindSafe for Database",1,["db_sqlx_maria::Database"]],["impl !UnwindSafe for Conn",1,["db_sqlx_maria::Conn"]],["impl !UnwindSafe for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl !UnwindSafe for Fresh",1,["db_sqlx_maria::Fresh"]],["impl UnwindSafe for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]], -"db_sqlx_postgres":[["impl !UnwindSafe for Database",1,["db_sqlx_postgres::Database"]],["impl !UnwindSafe for Conn",1,["db_sqlx_postgres::Conn"]],["impl !UnwindSafe for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl !UnwindSafe for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl UnwindSafe for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]], -"mcaptcha":[["impl UnwindSafe for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl UnwindSafe for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl UnwindSafe for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl UnwindSafe for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl UnwindSafe for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl UnwindSafe for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl UnwindSafe for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl UnwindSafe for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl UnwindSafe for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl UnwindSafe for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl UnwindSafe for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl UnwindSafe for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl UnwindSafe for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl UnwindSafe for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl UnwindSafe for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl UnwindSafe for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl UnwindSafe for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl UnwindSafe for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl UnwindSafe for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl UnwindSafe for register",1,["mcaptcha::api::v1::auth::register"]],["impl UnwindSafe for login",1,["mcaptcha::api::v1::auth::login"]],["impl UnwindSafe for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl UnwindSafe for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl UnwindSafe for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl UnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl UnwindSafe for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl UnwindSafe for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl UnwindSafe for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl UnwindSafe for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl UnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl UnwindSafe for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl UnwindSafe for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl UnwindSafe for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl UnwindSafe for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl UnwindSafe for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl UnwindSafe for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl UnwindSafe for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl UnwindSafe for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl UnwindSafe for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl UnwindSafe for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl UnwindSafe for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl UnwindSafe for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl UnwindSafe for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl UnwindSafe for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl UnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl UnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl UnwindSafe for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl UnwindSafe for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl UnwindSafe for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl UnwindSafe for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl UnwindSafe for health",1,["mcaptcha::api::v1::meta::health"]],["impl UnwindSafe for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl UnwindSafe for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl UnwindSafe for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl UnwindSafe for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl UnwindSafe for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl UnwindSafe for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl UnwindSafe for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl UnwindSafe for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl UnwindSafe for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl UnwindSafe for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl UnwindSafe for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl UnwindSafe for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl UnwindSafe for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl UnwindSafe for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl UnwindSafe for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl UnwindSafe for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl UnwindSafe for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl UnwindSafe for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl UnwindSafe for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl UnwindSafe for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl UnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl UnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl UnwindSafe for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl UnwindSafe for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl UnwindSafe for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl UnwindSafe for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl UnwindSafe for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl UnwindSafe for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl UnwindSafe for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl UnwindSafe for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl UnwindSafe for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl UnwindSafe for download",1,["mcaptcha::api::v1::survey::download"]],["impl UnwindSafe for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl UnwindSafe for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl UnwindSafe for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl !UnwindSafe for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl !UnwindSafe for Data",1,["mcaptcha::data::Data"]],["impl UnwindSafe for Date",1,["mcaptcha::date::Date"]],["impl !UnwindSafe for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl UnwindSafe for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl UnwindSafe for Asset",1,["mcaptcha::docs::Asset"]],["impl UnwindSafe for dist",1,["mcaptcha::docs::dist"]],["impl UnwindSafe for spec",1,["mcaptcha::docs::spec"]],["impl UnwindSafe for index",1,["mcaptcha::docs::index"]],["impl !UnwindSafe for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl<'a> UnwindSafe for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl !UnwindSafe for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl !UnwindSafe for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl !UnwindSafe for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl UnwindSafe for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl !UnwindSafe for PageError",1,["mcaptcha::errors::PageError"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl UnwindSafe for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl UnwindSafe for login",1,["mcaptcha::pages::auth::login::login"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl UnwindSafe for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl UnwindSafe for join",1,["mcaptcha::pages::auth::register::join"]],["impl<'a, K, V> UnwindSafe for SudoPage<'a, K, V>
    where\n K: UnwindSafe,\n V: UnwindSafe,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]],["impl UnwindSafe for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl UnwindSafe for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl<'a> UnwindSafe for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl UnwindSafe for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl UnwindSafe for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl UnwindSafe for error",1,["mcaptcha::pages::errors::error"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl UnwindSafe for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl UnwindSafe for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl UnwindSafe for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl<'a> UnwindSafe for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl UnwindSafe for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl UnwindSafe for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl UnwindSafe for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl UnwindSafe for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl UnwindSafe for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl<'a> UnwindSafe for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl UnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl<'a> UnwindSafe for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl UnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl UnwindSafe for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl UnwindSafe for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl UnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl<'a> UnwindSafe for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl UnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl UnwindSafe for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl UnwindSafe for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl UnwindSafe for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl UnwindSafe for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl UnwindSafe for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl UnwindSafe for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl UnwindSafe for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl UnwindSafe for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl UnwindSafe for panel",1,["mcaptcha::pages::panel::panel"]],["impl UnwindSafe for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl UnwindSafe for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl UnwindSafe for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl UnwindSafe for Server",1,["mcaptcha::settings::Server"]],["impl UnwindSafe for Captcha",1,["mcaptcha::settings::Captcha"]],["impl UnwindSafe for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl UnwindSafe for Smtp",1,["mcaptcha::settings::Smtp"]],["impl UnwindSafe for DBType",1,["mcaptcha::settings::DBType"]],["impl UnwindSafe for Database",1,["mcaptcha::settings::Database"]],["impl UnwindSafe for Redis",1,["mcaptcha::settings::Redis"]],["impl UnwindSafe for Survey",1,["mcaptcha::settings::Survey"]],["impl UnwindSafe for Settings",1,["mcaptcha::settings::Settings"]],["impl UnwindSafe for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl UnwindSafe for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl UnwindSafe for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl UnwindSafe for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl UnwindSafe for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl UnwindSafe for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl UnwindSafe for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl UnwindSafe for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl UnwindSafe for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl UnwindSafe for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl UnwindSafe for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl UnwindSafe for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl UnwindSafe for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl UnwindSafe for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl UnwindSafe for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl UnwindSafe for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl UnwindSafe for Real",1,["mcaptcha::stats::Real"]],["impl UnwindSafe for Dummy",1,["mcaptcha::stats::Dummy"]],["impl UnwindSafe for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl !UnwindSafe for Survey",1,["mcaptcha::survey::Survey"]],["impl UnwindSafe for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl UnwindSafe for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl UnwindSafe for show_widget",1,["mcaptcha::widget::show_widget"]],["impl UnwindSafe for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl UnwindSafe for FILES",1,["mcaptcha::FILES"]],["impl UnwindSafe for JS",1,["mcaptcha::JS"]],["impl UnwindSafe for CSS",1,["mcaptcha::CSS"]],["impl UnwindSafe for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl UnwindSafe for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl UnwindSafe for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl UnwindSafe for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[["impl !UnwindSafe for DBError",1,["db_core::errors::DBError"]],["impl UnwindSafe for Captcha",1,["db_core::Captcha"]],["impl UnwindSafe for CreatePerformanceAnalytics",1,["db_core::CreatePerformanceAnalytics"]],["impl UnwindSafe for EasyCaptcha",1,["db_core::EasyCaptcha"]],["impl UnwindSafe for NameHash",1,["db_core::NameHash"]],["impl UnwindSafe for Notification",1,["db_core::Notification"]],["impl UnwindSafe for PerformanceAnalytics",1,["db_core::PerformanceAnalytics"]],["impl UnwindSafe for Secret",1,["db_core::Secret"]],["impl UnwindSafe for StatsUnixTimestamp",1,["db_core::StatsUnixTimestamp"]],["impl UnwindSafe for TrafficPattern",1,["db_core::TrafficPattern"]],["impl<'a> UnwindSafe for Login<'a>",1,["db_core::Login"]],["impl<'a> UnwindSafe for AddNotification<'a>",1,["db_core::AddNotification"]],["impl<'a> UnwindSafe for CreateCaptcha<'a>",1,["db_core::CreateCaptcha"]],["impl<'a> UnwindSafe for Register<'a>",1,["db_core::Register"]],["impl<'a> UnwindSafe for UpdateEmail<'a>",1,["db_core::UpdateEmail"]]]],["db_sqlx_maria",[["impl !UnwindSafe for ConnectionOptions",1,["db_sqlx_maria::ConnectionOptions"]],["impl !UnwindSafe for Conn",1,["db_sqlx_maria::Conn"]],["impl !UnwindSafe for Database",1,["db_sqlx_maria::Database"]],["impl !UnwindSafe for Fresh",1,["db_sqlx_maria::Fresh"]],["impl UnwindSafe for InnerNotification",1,["db_sqlx_maria::InnerNotification"]]]],["db_sqlx_postgres",[["impl !UnwindSafe for ConnectionOptions",1,["db_sqlx_postgres::ConnectionOptions"]],["impl !UnwindSafe for Conn",1,["db_sqlx_postgres::Conn"]],["impl !UnwindSafe for Database",1,["db_sqlx_postgres::Database"]],["impl !UnwindSafe for Fresh",1,["db_sqlx_postgres::Fresh"]],["impl UnwindSafe for InnerNotification",1,["db_sqlx_postgres::InnerNotification"]]]],["mcaptcha",[["impl !UnwindSafe for SystemGroup",1,["mcaptcha::data::SystemGroup"]],["impl !UnwindSafe for PageError",1,["mcaptcha::errors::PageError"]],["impl !UnwindSafe for ServiceError",1,["mcaptcha::errors::ServiceError"]],["impl !UnwindSafe for DemoUser",1,["mcaptcha::demo::DemoUser"]],["impl !UnwindSafe for UpdateEasyCaptcha",1,["mcaptcha::easy::UpdateEasyCaptcha"]],["impl !UnwindSafe for DBErrorWrapper",1,["mcaptcha::errors::DBErrorWrapper"]],["impl !UnwindSafe for SmtpErrorWrapper",1,["mcaptcha::errors::SmtpErrorWrapper"]],["impl !UnwindSafe for Data",1,["mcaptcha::data::Data"]],["impl !UnwindSafe for Survey",1,["mcaptcha::survey::Survey"]],["impl UnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]],["impl UnwindSafe for HealthBuilderError",1,["mcaptcha::api::v1::meta::HealthBuilderError"]],["impl UnwindSafe for BuildDetailsBuilderError",1,["mcaptcha::api::v1::stats::BuildDetailsBuilderError"]],["impl UnwindSafe for PercentileReqBuilderError",1,["mcaptcha::api::v1::stats::PercentileReqBuilderError"]],["impl UnwindSafe for PercentileRespBuilderError",1,["mcaptcha::api::v1::stats::PercentileRespBuilderError"]],["impl UnwindSafe for DBType",1,["mcaptcha::settings::DBType"]],["impl UnwindSafe for delete_account",1,["mcaptcha::api::v1::account::delete::delete_account"]],["impl UnwindSafe for Email",1,["mcaptcha::api::v1::account::email::Email"]],["impl UnwindSafe for email_exists",1,["mcaptcha::api::v1::account::email::email_exists"]],["impl UnwindSafe for set_email",1,["mcaptcha::api::v1::account::email::set_email"]],["impl UnwindSafe for ChangePasswordReqest",1,["mcaptcha::api::v1::account::password::ChangePasswordReqest"]],["impl UnwindSafe for UpdatePassword",1,["mcaptcha::api::v1::account::password::UpdatePassword"]],["impl UnwindSafe for update_user_password",1,["mcaptcha::api::v1::account::password::update_user_password"]],["impl UnwindSafe for Account",1,["mcaptcha::api::v1::account::routes::Account"]],["impl UnwindSafe for get_secret",1,["mcaptcha::api::v1::account::secret::get_secret"]],["impl UnwindSafe for update_user_secret",1,["mcaptcha::api::v1::account::secret::update_user_secret"]],["impl UnwindSafe for AccountCheckPayload",1,["mcaptcha::api::v1::account::AccountCheckPayload"]],["impl UnwindSafe for AccountCheckResp",1,["mcaptcha::api::v1::account::AccountCheckResp"]],["impl UnwindSafe for Username",1,["mcaptcha::api::v1::account::username::Username"]],["impl UnwindSafe for set_username",1,["mcaptcha::api::v1::account::username::set_username"]],["impl UnwindSafe for username_exists",1,["mcaptcha::api::v1::account::username::username_exists"]],["impl UnwindSafe for Auth",1,["mcaptcha::api::v1::auth::routes::Auth"]],["impl UnwindSafe for Login",1,["mcaptcha::api::v1::auth::runners::Login"]],["impl UnwindSafe for Password",1,["mcaptcha::api::v1::auth::runners::Password"]],["impl UnwindSafe for Register",1,["mcaptcha::api::v1::auth::runners::Register"]],["impl UnwindSafe for login",1,["mcaptcha::api::v1::auth::login"]],["impl UnwindSafe for register",1,["mcaptcha::api::v1::auth::register"]],["impl UnwindSafe for signout",1,["mcaptcha::api::v1::auth::signout"]],["impl UnwindSafe for CreateCaptcha",1,["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]],["impl UnwindSafe for MCaptchaDetails",1,["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]],["impl UnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::create::create"]],["impl UnwindSafe for DeleteCaptcha",1,["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]],["impl UnwindSafe for delete",1,["mcaptcha::api::v1::mcaptcha::delete::delete"]],["impl UnwindSafe for Easy",1,["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]],["impl UnwindSafe for TrafficPatternRequest",1,["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]],["impl UnwindSafe for UpdateTrafficPattern",1,["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]],["impl UnwindSafe for create",1,["mcaptcha::api::v1::mcaptcha::easy::create"]],["impl UnwindSafe for update",1,["mcaptcha::api::v1::mcaptcha::easy::update"]],["impl UnwindSafe for I32Levels",1,["mcaptcha::api::v1::mcaptcha::get::I32Levels"]],["impl UnwindSafe for Levels",1,["mcaptcha::api::v1::mcaptcha::get::Levels"]],["impl UnwindSafe for get_captcha",1,["mcaptcha::api::v1::mcaptcha::get::get_captcha"]],["impl UnwindSafe for Captcha",1,["mcaptcha::api::v1::mcaptcha::routes::Captcha"]],["impl UnwindSafe for Stats",1,["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]],["impl UnwindSafe for StatsPayload",1,["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]],["impl UnwindSafe for get",1,["mcaptcha::api::v1::mcaptcha::stats::get"]],["impl UnwindSafe for UpdateCaptcha",1,["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]],["impl UnwindSafe for update_captcha",1,["mcaptcha::api::v1::mcaptcha::update::update_captcha"]],["impl UnwindSafe for update_key",1,["mcaptcha::api::v1::mcaptcha::update::update_key"]],["impl UnwindSafe for Meta",1,["mcaptcha::api::v1::meta::routes::Meta"]],["impl UnwindSafe for BuildDetails",1,["mcaptcha::api::v1::meta::BuildDetails"]],["impl UnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::meta::BuildDetailsBuilder"]],["impl UnwindSafe for Health",1,["mcaptcha::api::v1::meta::Health"]],["impl UnwindSafe for HealthBuilder",1,["mcaptcha::api::v1::meta::HealthBuilder"]],["impl UnwindSafe for build_details",1,["mcaptcha::api::v1::meta::build_details"]],["impl UnwindSafe for health",1,["mcaptcha::api::v1::meta::health"]],["impl UnwindSafe for AddNotificationRequest",1,["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]],["impl UnwindSafe for add_notification",1,["mcaptcha::api::v1::notifications::add::add_notification"]],["impl UnwindSafe for NotificationResp",1,["mcaptcha::api::v1::notifications::get::NotificationResp"]],["impl UnwindSafe for get_notification",1,["mcaptcha::api::v1::notifications::get::get_notification"]],["impl UnwindSafe for MarkReadReq",1,["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]],["impl UnwindSafe for mark_read",1,["mcaptcha::api::v1::notifications::mark_read::mark_read"]],["impl UnwindSafe for Notifications",1,["mcaptcha::api::v1::notifications::routes::Notifications"]],["impl UnwindSafe for ApiPoWConfig",1,["mcaptcha::api::v1::pow::get_config::ApiPoWConfig"]],["impl UnwindSafe for GetConfigPayload",1,["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]],["impl UnwindSafe for get_config",1,["mcaptcha::api::v1::pow::get_config::get_config"]],["impl UnwindSafe for PoW",1,["mcaptcha::api::v1::pow::routes::PoW"]],["impl UnwindSafe for ApiWork",1,["mcaptcha::api::v1::pow::verify_pow::ApiWork"]],["impl UnwindSafe for ValidationToken",1,["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]],["impl UnwindSafe for verify_pow",1,["mcaptcha::api::v1::pow::verify_pow::verify_pow"]],["impl UnwindSafe for CaptchaValidateResp",1,["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]],["impl UnwindSafe for VerifyCaptchaResultPayload",1,["mcaptcha::api::v1::pow::verify_token::VerifyCaptchaResultPayload"]],["impl UnwindSafe for validate_captcha_token",1,["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]],["impl UnwindSafe for Routes",1,["mcaptcha::api::v1::routes::Routes"]],["impl UnwindSafe for Stats",1,["mcaptcha::api::v1::stats::routes::Stats"]],["impl UnwindSafe for BuildDetails",1,["mcaptcha::api::v1::stats::BuildDetails"]],["impl UnwindSafe for BuildDetailsBuilder",1,["mcaptcha::api::v1::stats::BuildDetailsBuilder"]],["impl UnwindSafe for PercentileReq",1,["mcaptcha::api::v1::stats::PercentileReq"]],["impl UnwindSafe for PercentileReqBuilder",1,["mcaptcha::api::v1::stats::PercentileReqBuilder"]],["impl UnwindSafe for PercentileResp",1,["mcaptcha::api::v1::stats::PercentileResp"]],["impl UnwindSafe for PercentileRespBuilder",1,["mcaptcha::api::v1::stats::PercentileRespBuilder"]],["impl UnwindSafe for percentile_benches",1,["mcaptcha::api::v1::stats::percentile_benches"]],["impl UnwindSafe for RedirectQuery",1,["mcaptcha::api::v1::RedirectQuery"]],["impl UnwindSafe for Survey",1,["mcaptcha::api::v1::survey::routes::Survey"]],["impl UnwindSafe for Page",1,["mcaptcha::api::v1::survey::Page"]],["impl UnwindSafe for SurveySecretUpload",1,["mcaptcha::api::v1::survey::SurveySecretUpload"]],["impl UnwindSafe for download",1,["mcaptcha::api::v1::survey::download"]],["impl UnwindSafe for secret",1,["mcaptcha::api::v1::survey::secret"]],["impl UnwindSafe for Date",1,["mcaptcha::date::Date"]],["impl UnwindSafe for Docs",1,["mcaptcha::docs::routes::Docs"]],["impl UnwindSafe for Asset",1,["mcaptcha::docs::Asset"]],["impl UnwindSafe for dist",1,["mcaptcha::docs::dist"]],["impl UnwindSafe for index",1,["mcaptcha::docs::index"]],["impl UnwindSafe for spec",1,["mcaptcha::docs::spec"]],["impl UnwindSafe for ErrorToResponse",1,["mcaptcha::errors::ErrorToResponse"]],["impl UnwindSafe for INDEX",1,["mcaptcha::pages::auth::login::INDEX"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::auth::login::IndexPage"]],["impl UnwindSafe for login",1,["mcaptcha::pages::auth::login::login"]],["impl UnwindSafe for INDEX",1,["mcaptcha::pages::auth::register::INDEX"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::auth::register::IndexPage"]],["impl UnwindSafe for join",1,["mcaptcha::pages::auth::register::join"]],["impl UnwindSafe for Auth",1,["mcaptcha::pages::auth::routes::Auth"]],["impl UnwindSafe for Errors",1,["mcaptcha::pages::errors::routes::Errors"]],["impl UnwindSafe for INTERNAL_SERVER_ERROR_BODY",1,["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]],["impl UnwindSafe for UNKNOWN_ERROR_BODY",1,["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]],["impl UnwindSafe for error",1,["mcaptcha::pages::errors::error"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::notifications::IndexPage"]],["impl UnwindSafe for Notification",1,["mcaptcha::pages::panel::notifications::Notification"]],["impl UnwindSafe for notifications",1,["mcaptcha::pages::panel::notifications::notifications"]],["impl UnwindSafe for Panel",1,["mcaptcha::pages::panel::routes::Panel"]],["impl UnwindSafe for Settings",1,["mcaptcha::pages::panel::settings::routes::Settings"]],["impl UnwindSafe for delete_account",1,["mcaptcha::pages::panel::settings::delete_account"]],["impl UnwindSafe for settings",1,["mcaptcha::pages::panel::settings::settings"]],["impl UnwindSafe for update_secret",1,["mcaptcha::pages::panel::settings::update_secret"]],["impl UnwindSafe for ADVANCE_INDEX",1,["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]],["impl UnwindSafe for EASY_INDEX",1,["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]],["impl UnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::add::advance"]],["impl UnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::add::easy"]],["impl UnwindSafe for delete_sitekey",1,["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]],["impl UnwindSafe for AdvanceEditPage",1,["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]],["impl UnwindSafe for advance",1,["mcaptcha::pages::panel::sitekey::edit::advance"]],["impl UnwindSafe for easy",1,["mcaptcha::pages::panel::sitekey::edit::easy"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::list::IndexPage"]],["impl UnwindSafe for list_sitekeys",1,["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]],["impl UnwindSafe for Sitekey",1,["mcaptcha::pages::panel::sitekey::routes::Sitekey"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::sitekey::view::IndexPage"]],["impl UnwindSafe for view_sitekey",1,["mcaptcha::pages::panel::sitekey::view::view_sitekey"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::panel::IndexPage"]],["impl UnwindSafe for panel",1,["mcaptcha::pages::panel::panel"]],["impl UnwindSafe for Utils",1,["mcaptcha::pages::panel::utils::routes::Utils"]],["impl UnwindSafe for PercentilePage",1,["mcaptcha::pages::panel::utils::PercentilePage"]],["impl UnwindSafe for get_percentile",1,["mcaptcha::pages::panel::utils::get_percentile"]],["impl UnwindSafe for post_percentile",1,["mcaptcha::pages::panel::utils::post_percentile"]],["impl UnwindSafe for Routes",1,["mcaptcha::pages::routes::Routes"]],["impl UnwindSafe for INDEX",1,["mcaptcha::pages::sitemap::INDEX"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::pages::sitemap::IndexPage"]],["impl UnwindSafe for sitemap",1,["mcaptcha::pages::sitemap::sitemap"]],["impl UnwindSafe for Captcha",1,["mcaptcha::settings::Captcha"]],["impl UnwindSafe for Database",1,["mcaptcha::settings::Database"]],["impl UnwindSafe for DefaultDifficultyStrategy",1,["mcaptcha::settings::DefaultDifficultyStrategy"]],["impl UnwindSafe for Redis",1,["mcaptcha::settings::Redis"]],["impl UnwindSafe for Server",1,["mcaptcha::settings::Server"]],["impl UnwindSafe for Smtp",1,["mcaptcha::settings::Smtp"]],["impl UnwindSafe for Survey",1,["mcaptcha::settings::Survey"]],["impl UnwindSafe for FileMap",1,["mcaptcha::static_assets::filemap::FileMap"]],["impl UnwindSafe for Asset",1,["mcaptcha::static_assets::static_files::Asset"]],["impl UnwindSafe for Favicons",1,["mcaptcha::static_assets::static_files::Favicons"]],["impl UnwindSafe for favicons",1,["mcaptcha::static_assets::static_files::favicons"]],["impl UnwindSafe for static_files",1,["mcaptcha::static_assets::static_files::static_files"]],["impl UnwindSafe for CaptchaStats",1,["mcaptcha::stats::CaptchaStats"]],["impl UnwindSafe for Dummy",1,["mcaptcha::stats::Dummy"]],["impl UnwindSafe for Real",1,["mcaptcha::stats::Real"]],["impl UnwindSafe for BAR_CHART",1,["mcaptcha::static_assets::static_files::assets::BAR_CHART"]],["impl UnwindSafe for CREDIT_CARD",1,["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]],["impl UnwindSafe for CSS",1,["mcaptcha::CSS"]],["impl UnwindSafe for DOCS_ICON",1,["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]],["impl UnwindSafe for FILES",1,["mcaptcha::FILES"]],["impl UnwindSafe for GITHUB",1,["mcaptcha::static_assets::static_files::assets::GITHUB"]],["impl UnwindSafe for HELP_CIRCLE",1,["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]],["impl UnwindSafe for HOME",1,["mcaptcha::static_assets::static_files::assets::HOME"]],["impl UnwindSafe for JS",1,["mcaptcha::JS"]],["impl UnwindSafe for KEY",1,["mcaptcha::static_assets::static_files::assets::KEY"]],["impl UnwindSafe for MCAPTCHA_TRANS_ICON",1,["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]],["impl UnwindSafe for MESSAGE",1,["mcaptcha::static_assets::static_files::assets::MESSAGE"]],["impl UnwindSafe for MOBILE_CSS",1,["mcaptcha::MOBILE_CSS"]],["impl UnwindSafe for SETTINGS",1,["mcaptcha::SETTINGS"]],["impl UnwindSafe for SETTINGS_ICON",1,["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]],["impl UnwindSafe for SOURCE_FILES_OF_INSTANCE",1,["mcaptcha::SOURCE_FILES_OF_INSTANCE"]],["impl UnwindSafe for Settings",1,["mcaptcha::settings::Settings"]],["impl UnwindSafe for VERIFICATIN_WIDGET_CSS",1,["mcaptcha::VERIFICATIN_WIDGET_CSS"]],["impl UnwindSafe for VERIFICATIN_WIDGET_JS",1,["mcaptcha::VERIFICATIN_WIDGET_JS"]],["impl UnwindSafe for SecretsStore",1,["mcaptcha::survey::SecretsStore"]],["impl UnwindSafe for Widget",1,["mcaptcha::widget::routes::Widget"]],["impl UnwindSafe for INDEX_PAGE",1,["mcaptcha::widget::INDEX_PAGE"]],["impl UnwindSafe for IndexPage",1,["mcaptcha::widget::IndexPage"]],["impl UnwindSafe for show_widget",1,["mcaptcha::widget::show_widget"]],["impl<'a> UnwindSafe for IndexPage<'a>",1,["mcaptcha::email::verification::IndexPage"]],["impl<'a> UnwindSafe for ErrorPage<'a>",1,["mcaptcha::pages::errors::ErrorPage"]],["impl<'a> UnwindSafe for IndexPage<'a>",1,["mcaptcha::pages::panel::settings::IndexPage"]],["impl<'a> UnwindSafe for AdvanceIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]],["impl<'a> UnwindSafe for EasyIndexPage<'a>",1,["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]],["impl<'a> UnwindSafe for EasyEditPage<'a>",1,["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]],["impl<'a, K, V> UnwindSafe for SudoPage<'a, K, V>
    where\n K: UnwindSafe,\n V: UnwindSafe,
    ",1,["mcaptcha::pages::auth::sudo::SudoPage"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[5124,1737,1785,74156]} \ No newline at end of file diff --git a/trait.impl/db_core/ops/trait.Connect.js b/trait.impl/db_core/ops/trait.Connect.js index 48aab37a..06131f3c 100644 --- a/trait.impl/db_core/ops/trait.Connect.js +++ b/trait.impl/db_core/ops/trait.Connect.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"db_sqlx_maria":[["impl Connect for ConnectionOptions"]], -"db_sqlx_postgres":[["impl Connect for ConnectionOptions"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_sqlx_maria",[["impl Connect for ConnectionOptions"]]],["db_sqlx_postgres",[["impl Connect for ConnectionOptions"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[292,308]} \ No newline at end of file diff --git a/trait.impl/db_core/ops/trait.Migrate.js b/trait.impl/db_core/ops/trait.Migrate.js index 3d816b42..ceb66255 100644 --- a/trait.impl/db_core/ops/trait.Migrate.js +++ b/trait.impl/db_core/ops/trait.Migrate.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"db_sqlx_maria":[["impl Migrate for Database"]], -"db_sqlx_postgres":[["impl Migrate for Database"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_sqlx_maria",[["impl Migrate for Database"]]],["db_sqlx_postgres",[["impl Migrate for Database"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[271,287]} \ No newline at end of file diff --git a/trait.impl/db_core/trait.CloneSPDatabase.js b/trait.impl/db_core/trait.CloneSPDatabase.js index ac2aa5d5..bbe10f7a 100644 --- a/trait.impl/db_core/trait.CloneSPDatabase.js +++ b/trait.impl/db_core/trait.CloneSPDatabase.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"db_core":[], -"db_sqlx_maria":[], -"db_sqlx_postgres":[] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_core",[]],["db_sqlx_maria",[]],["db_sqlx_postgres",[]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[14,21,24]} \ No newline at end of file diff --git a/trait.impl/db_core/trait.MCDatabase.js b/trait.impl/db_core/trait.MCDatabase.js index 19729647..8b791a4d 100644 --- a/trait.impl/db_core/trait.MCDatabase.js +++ b/trait.impl/db_core/trait.MCDatabase.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"db_sqlx_maria":[["impl MCDatabase for Database"]], -"db_sqlx_postgres":[["impl MCDatabase for Database"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["db_sqlx_maria",[["impl MCDatabase for Database"]]],["db_sqlx_postgres",[["impl MCDatabase for Database"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[280,296]} \ No newline at end of file diff --git a/trait.impl/lazy_static/trait.LazyStatic.js b/trait.impl/lazy_static/trait.LazyStatic.js index babf9f60..c764fbd3 100644 --- a/trait.impl/lazy_static/trait.LazyStatic.js +++ b/trait.impl/lazy_static/trait.LazyStatic.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl LazyStatic for VERIFICATIN_WIDGET_CSS"],["impl LazyStatic for INDEX_PAGE"],["impl LazyStatic for SETTINGS"],["impl LazyStatic for HOME"],["impl LazyStatic for INTERNAL_SERVER_ERROR_BODY"],["impl LazyStatic for JS"],["impl LazyStatic for CSS"],["impl LazyStatic for DOCS_ICON"],["impl LazyStatic for VERIFICATIN_WIDGET_JS"],["impl LazyStatic for HELP_CIRCLE"],["impl LazyStatic for CREDIT_CARD"],["impl LazyStatic for MCAPTCHA_TRANS_ICON"],["impl LazyStatic for FILES"],["impl LazyStatic for UNKNOWN_ERROR_BODY"],["impl LazyStatic for GITHUB"],["impl LazyStatic for SOURCE_FILES_OF_INSTANCE"],["impl LazyStatic for INDEX"],["impl LazyStatic for INDEX"],["impl LazyStatic for EASY_INDEX"],["impl LazyStatic for BAR_CHART"],["impl LazyStatic for KEY"],["impl LazyStatic for ADVANCE_INDEX"],["impl LazyStatic for MOBILE_CSS"],["impl LazyStatic for INDEX"],["impl LazyStatic for MESSAGE"],["impl LazyStatic for SETTINGS_ICON"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl LazyStatic for INDEX"],["impl LazyStatic for INDEX"],["impl LazyStatic for INTERNAL_SERVER_ERROR_BODY"],["impl LazyStatic for UNKNOWN_ERROR_BODY"],["impl LazyStatic for ADVANCE_INDEX"],["impl LazyStatic for EASY_INDEX"],["impl LazyStatic for INDEX"],["impl LazyStatic for BAR_CHART"],["impl LazyStatic for CREDIT_CARD"],["impl LazyStatic for CSS"],["impl LazyStatic for DOCS_ICON"],["impl LazyStatic for FILES"],["impl LazyStatic for GITHUB"],["impl LazyStatic for HELP_CIRCLE"],["impl LazyStatic for HOME"],["impl LazyStatic for JS"],["impl LazyStatic for KEY"],["impl LazyStatic for MCAPTCHA_TRANS_ICON"],["impl LazyStatic for MESSAGE"],["impl LazyStatic for MOBILE_CSS"],["impl LazyStatic for SETTINGS"],["impl LazyStatic for SETTINGS_ICON"],["impl LazyStatic for SOURCE_FILES_OF_INSTANCE"],["impl LazyStatic for VERIFICATIN_WIDGET_CSS"],["impl LazyStatic for VERIFICATIN_WIDGET_JS"],["impl LazyStatic for INDEX_PAGE"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[7584]} \ No newline at end of file diff --git a/trait.impl/mcaptcha/stats/trait.CloneStats.js b/trait.impl/mcaptcha/stats/trait.CloneStats.js index 64c12d50..88867219 100644 --- a/trait.impl/mcaptcha/stats/trait.CloneStats.js +++ b/trait.impl/mcaptcha/stats/trait.CloneStats.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[15]} \ No newline at end of file diff --git a/trait.impl/mcaptcha/stats/trait.Stats.js b/trait.impl/mcaptcha/stats/trait.Stats.js index 64c12d50..88867219 100644 --- a/trait.impl/mcaptcha/stats/trait.Stats.js +++ b/trait.impl/mcaptcha/stats/trait.Stats.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[15]} \ No newline at end of file diff --git a/trait.impl/mcaptcha/survey/trait.SurveyClientTrait.js b/trait.impl/mcaptcha/survey/trait.SurveyClientTrait.js index 64c12d50..88867219 100644 --- a/trait.impl/mcaptcha/survey/trait.SurveyClientTrait.js +++ b/trait.impl/mcaptcha/survey/trait.SurveyClientTrait.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[15]} \ No newline at end of file diff --git a/trait.impl/rust_embed/trait.RustEmbed.js b/trait.impl/rust_embed/trait.RustEmbed.js index 4a11df0a..e0cda178 100644 --- a/trait.impl/rust_embed/trait.RustEmbed.js +++ b/trait.impl/rust_embed/trait.RustEmbed.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl RustEmbed for Favicons"],["impl RustEmbed for Asset"],["impl RustEmbed for Asset"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl RustEmbed for Asset"],["impl RustEmbed for Asset"],["impl RustEmbed for Favicons"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[512]} \ No newline at end of file diff --git a/trait.impl/sailfish/private/trait.Sealed.js b/trait.impl/sailfish/private/trait.Sealed.js index 19c6c471..d976bb61 100644 --- a/trait.impl/sailfish/private/trait.Sealed.js +++ b/trait.impl/sailfish/private/trait.Sealed.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl<'a> Sealed for EasyEditPage<'a>"],["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl<'a> Sealed for AdvanceIndexPage<'a>"],["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl Sealed for PercentilePage"],["impl<'a> Sealed for EasyIndexPage<'a>"],["impl Sealed for AdvanceEditPage"],["impl Sealed for IndexPage"],["impl<'a> Sealed for IndexPage<'a>"],["impl<'a, K, V> Sealed for SudoPage<'a, K, V>
    where\n K: Display + Render,\n V: Display + Render,
    "],["impl<'a> Sealed for ErrorPage<'a>"],["impl<'a> Sealed for IndexPage<'a>"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl Sealed for AdvanceEditPage"],["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl Sealed for PercentilePage"],["impl Sealed for IndexPage"],["impl Sealed for IndexPage"],["impl<'a> Sealed for IndexPage<'a>"],["impl<'a> Sealed for ErrorPage<'a>"],["impl<'a> Sealed for IndexPage<'a>"],["impl<'a> Sealed for AdvanceIndexPage<'a>"],["impl<'a> Sealed for EasyIndexPage<'a>"],["impl<'a> Sealed for EasyEditPage<'a>"],["impl<'a, K, V> Sealed for SudoPage<'a, K, V>
    where\n K: Display + Render,\n V: Display + Render,
    "]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[3518]} \ No newline at end of file diff --git a/trait.impl/sailfish/trait.TemplateOnce.js b/trait.impl/sailfish/trait.TemplateOnce.js index ae6316ca..026188e9 100644 --- a/trait.impl/sailfish/trait.TemplateOnce.js +++ b/trait.impl/sailfish/trait.TemplateOnce.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"mcaptcha":[["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl<'a> TemplateOnce for ErrorPage<'a>"],["impl<'a> TemplateOnce for EasyEditPage<'a>"],["impl<'a, K, V> TemplateOnce for SudoPage<'a, K, V>
    where\n K: Display + Render,\n V: Display + Render,
    "],["impl TemplateOnce for IndexPage"],["impl<'a> TemplateOnce for EasyIndexPage<'a>"],["impl TemplateOnce for IndexPage"],["impl<'a> TemplateOnce for AdvanceIndexPage<'a>"],["impl TemplateOnce for AdvanceEditPage"],["impl<'a> TemplateOnce for IndexPage<'a>"],["impl TemplateOnce for PercentilePage"],["impl TemplateOnce for IndexPage"],["impl<'a> TemplateOnce for IndexPage<'a>"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["mcaptcha",[["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for AdvanceEditPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for PercentilePage"],["impl TemplateOnce for IndexPage"],["impl TemplateOnce for IndexPage"],["impl<'a> TemplateOnce for IndexPage<'a>"],["impl<'a> TemplateOnce for ErrorPage<'a>"],["impl<'a> TemplateOnce for IndexPage<'a>"],["impl<'a> TemplateOnce for AdvanceIndexPage<'a>"],["impl<'a> TemplateOnce for EasyIndexPage<'a>"],["impl<'a> TemplateOnce for EasyEditPage<'a>"],["impl<'a, K, V> TemplateOnce for SudoPage<'a, K, V>
    where\n K: Display + Render,\n V: Display + Render,
    "]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[3620]} \ No newline at end of file diff --git a/trait.impl/serde/de/trait.Deserialize.js b/trait.impl/serde/de/trait.Deserialize.js deleted file mode 100644 index 7e2cc243..00000000 --- a/trait.impl/serde/de/trait.Deserialize.js +++ /dev/null @@ -1,4 +0,0 @@ -(function() {var implementors = { -"db_core":[["impl<'de> Deserialize<'de> for Captcha"],["impl<'de> Deserialize<'de> for TrafficPattern"],["impl<'de: 'a, 'a> Deserialize<'de> for Register<'a>"],["impl<'de: 'a, 'a> Deserialize<'de> for UpdateEmail<'a>"],["impl<'de> Deserialize<'de> for NameHash"],["impl<'de> Deserialize<'de> for StatsUnixTimestamp"],["impl<'de: 'a, 'a> Deserialize<'de> for AddNotification<'a>"],["impl<'de: 'a, 'a> Deserialize<'de> for Login<'a>"],["impl<'de> Deserialize<'de> for Notification"],["impl<'de> Deserialize<'de> for PerformanceAnalytics"],["impl<'de> Deserialize<'de> for EasyCaptcha"],["impl<'de> Deserialize<'de> for Secret"],["impl<'de: 'a, 'a> Deserialize<'de> for CreateCaptcha<'a>"],["impl<'de> Deserialize<'de> for CreatePerformanceAnalytics"]], -"mcaptcha":[["impl<'de> Deserialize<'de> for I32Levels"],["impl<'de> Deserialize<'de> for GetConfigPayload"],["impl<'de> Deserialize<'de> for NotificationResp"],["impl<'de> Deserialize<'de> for Password"],["impl<'de> Deserialize<'de> for MarkReadReq"],["impl<'de> Deserialize<'de> for ChangePasswordReqest"],["impl<'de> Deserialize<'de> for ApiPoWConfig"],["impl<'de> Deserialize<'de> for CaptchaValidateResp"],["impl<'de> Deserialize<'de> for Health"],["impl<'de> Deserialize<'de> for CaptchaStats"],["impl<'de> Deserialize<'de> for ErrorToResponse"],["impl<'de> Deserialize<'de> for StatsPayload"],["impl<'de> Deserialize<'de> for Redis"],["impl<'de> Deserialize<'de> for DBType"],["impl<'de> Deserialize<'de> for PercentileReq"],["impl<'de> Deserialize<'de> for VerifyCaptchaResultPayload"],["impl<'de> Deserialize<'de> for Levels"],["impl<'de> Deserialize<'de> for Database"],["impl<'de> Deserialize<'de> for CreateCaptcha"],["impl Deserialize<'static> for BuildDetails"],["impl<'de> Deserialize<'de> for DefaultDifficultyStrategy"],["impl<'de> Deserialize<'de> for Login"],["impl<'de> Deserialize<'de> for ApiWork"],["impl<'de> Deserialize<'de> for Smtp"],["impl<'de> Deserialize<'de> for MCaptchaDetails"],["impl<'de> Deserialize<'de> for Username"],["impl<'de> Deserialize<'de> for Settings"],["impl<'de> Deserialize<'de> for SurveySecretUpload"],["impl<'de> Deserialize<'de> for ValidationToken"],["impl<'de> Deserialize<'de> for Page"],["impl<'de> Deserialize<'de> for Server"],["impl<'de> Deserialize<'de> for Captcha"],["impl<'de> Deserialize<'de> for AccountCheckPayload"],["impl<'de> Deserialize<'de> for DeleteCaptcha"],["impl<'de> Deserialize<'de> for RedirectQuery"],["impl<'de> Deserialize<'de> for PercentileResp"],["impl<'de> Deserialize<'de> for AddNotificationRequest"],["impl<'de> Deserialize<'de> for Register"],["impl<'de> Deserialize<'de> for UpdateCaptcha"],["impl<'de> Deserialize<'de> for Survey"],["impl Deserialize<'static> for BuildDetails"],["impl<'de> Deserialize<'de> for AccountCheckResp"],["impl<'de> Deserialize<'de> for TrafficPatternRequest"],["impl<'de> Deserialize<'de> for Email"],["impl Deserialize<'static> for Stats"],["impl<'de> Deserialize<'de> for UpdateTrafficPattern"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/serde/ser/trait.Serialize.js b/trait.impl/serde/ser/trait.Serialize.js deleted file mode 100644 index e9123a14..00000000 --- a/trait.impl/serde/ser/trait.Serialize.js +++ /dev/null @@ -1,4 +0,0 @@ -(function() {var implementors = { -"db_core":[["impl<'a> Serialize for AddNotification<'a>"],["impl Serialize for NameHash"],["impl Serialize for StatsUnixTimestamp"],["impl Serialize for Notification"],["impl<'a> Serialize for Login<'a>"],["impl Serialize for Secret"],["impl<'a> Serialize for Register<'a>"],["impl Serialize for PerformanceAnalytics"],["impl Serialize for TrafficPattern"],["impl Serialize for Captcha"],["impl Serialize for CreatePerformanceAnalytics"],["impl<'a> Serialize for UpdateEmail<'a>"],["impl<'a> Serialize for CreateCaptcha<'a>"],["impl Serialize for EasyCaptcha"]], -"mcaptcha":[["impl Serialize for ValidationToken"],["impl Serialize for Email"],["impl Serialize for TrafficPatternRequest"],["impl Serialize for BuildDetails"],["impl Serialize for ApiPoWConfig"],["impl Serialize for CaptchaStats"],["impl Serialize for AccountCheckPayload"],["impl Serialize for DBType"],["impl Serialize for Register"],["impl Serialize for ApiWork"],["impl Serialize for VerifyCaptchaResultPayload"],["impl Serialize for ChangePasswordReqest"],["impl Serialize for MarkReadReq"],["impl Serialize for AccountCheckResp"],["impl Serialize for UpdateCaptcha"],["impl Serialize for UpdateTrafficPattern"],["impl Serialize for I32Levels"],["impl Serialize for GetConfigPayload"],["impl Serialize for Health"],["impl Serialize for Levels"],["impl Serialize for DeleteCaptcha"],["impl Serialize for PercentileReq"],["impl Serialize for ErrorToResponse"],["impl Serialize for Password"],["impl Serialize for BuildDetails"],["impl Serialize for MCaptchaDetails"],["impl Serialize for SurveySecretUpload"],["impl Serialize for Stats"],["impl Serialize for CaptchaValidateResp"],["impl Serialize for Page"],["impl Serialize for NotificationResp"],["impl Serialize for PercentileResp"],["impl Serialize for CreateCaptcha"],["impl Serialize for StatsPayload"],["impl Serialize for Login"],["impl Serialize for AddNotificationRequest"],["impl Serialize for Username"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/serde_core/de/trait.Deserialize.js b/trait.impl/serde_core/de/trait.Deserialize.js new file mode 100644 index 00000000..e53d755f --- /dev/null +++ b/trait.impl/serde_core/de/trait.Deserialize.js @@ -0,0 +1,9 @@ +(function() { + var implementors = Object.fromEntries([["db_core",[["impl<'de> Deserialize<'de> for Captcha"],["impl<'de> Deserialize<'de> for CreatePerformanceAnalytics"],["impl<'de> Deserialize<'de> for EasyCaptcha"],["impl<'de> Deserialize<'de> for NameHash"],["impl<'de> Deserialize<'de> for Notification"],["impl<'de> Deserialize<'de> for PerformanceAnalytics"],["impl<'de> Deserialize<'de> for Secret"],["impl<'de> Deserialize<'de> for StatsUnixTimestamp"],["impl<'de> Deserialize<'de> for TrafficPattern"],["impl<'de: 'a, 'a> Deserialize<'de> for Login<'a>"],["impl<'de: 'a, 'a> Deserialize<'de> for AddNotification<'a>"],["impl<'de: 'a, 'a> Deserialize<'de> for CreateCaptcha<'a>"],["impl<'de: 'a, 'a> Deserialize<'de> for Register<'a>"],["impl<'de: 'a, 'a> Deserialize<'de> for UpdateEmail<'a>"]]],["mcaptcha",[["impl Deserialize<'static> for BuildDetails"],["impl Deserialize<'static> for Stats"],["impl Deserialize<'static> for BuildDetails"],["impl<'de> Deserialize<'de> for DBType"],["impl<'de> Deserialize<'de> for Email"],["impl<'de> Deserialize<'de> for ChangePasswordReqest"],["impl<'de> Deserialize<'de> for AccountCheckPayload"],["impl<'de> Deserialize<'de> for AccountCheckResp"],["impl<'de> Deserialize<'de> for Username"],["impl<'de> Deserialize<'de> for Login"],["impl<'de> Deserialize<'de> for Password"],["impl<'de> Deserialize<'de> for Register"],["impl<'de> Deserialize<'de> for CreateCaptcha"],["impl<'de> Deserialize<'de> for MCaptchaDetails"],["impl<'de> Deserialize<'de> for DeleteCaptcha"],["impl<'de> Deserialize<'de> for TrafficPatternRequest"],["impl<'de> Deserialize<'de> for UpdateTrafficPattern"],["impl<'de> Deserialize<'de> for I32Levels"],["impl<'de> Deserialize<'de> for Levels"],["impl<'de> Deserialize<'de> for StatsPayload"],["impl<'de> Deserialize<'de> for UpdateCaptcha"],["impl<'de> Deserialize<'de> for Health"],["impl<'de> Deserialize<'de> for AddNotificationRequest"],["impl<'de> Deserialize<'de> for NotificationResp"],["impl<'de> Deserialize<'de> for MarkReadReq"],["impl<'de> Deserialize<'de> for ApiPoWConfig"],["impl<'de> Deserialize<'de> for GetConfigPayload"],["impl<'de> Deserialize<'de> for ApiWork"],["impl<'de> Deserialize<'de> for ValidationToken"],["impl<'de> Deserialize<'de> for CaptchaValidateResp"],["impl<'de> Deserialize<'de> for VerifyCaptchaResultPayload"],["impl<'de> Deserialize<'de> for PercentileReq"],["impl<'de> Deserialize<'de> for PercentileResp"],["impl<'de> Deserialize<'de> for RedirectQuery"],["impl<'de> Deserialize<'de> for Page"],["impl<'de> Deserialize<'de> for SurveySecretUpload"],["impl<'de> Deserialize<'de> for ErrorToResponse"],["impl<'de> Deserialize<'de> for Captcha"],["impl<'de> Deserialize<'de> for Database"],["impl<'de> Deserialize<'de> for DefaultDifficultyStrategy"],["impl<'de> Deserialize<'de> for Redis"],["impl<'de> Deserialize<'de> for Server"],["impl<'de> Deserialize<'de> for Smtp"],["impl<'de> Deserialize<'de> for Survey"],["impl<'de> Deserialize<'de> for CaptchaStats"],["impl<'de> Deserialize<'de> for Settings"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4497,16173]} \ No newline at end of file diff --git a/trait.impl/serde_core/ser/trait.Serialize.js b/trait.impl/serde_core/ser/trait.Serialize.js new file mode 100644 index 00000000..b3891f40 --- /dev/null +++ b/trait.impl/serde_core/ser/trait.Serialize.js @@ -0,0 +1,9 @@ +(function() { + var implementors = Object.fromEntries([["db_core",[["impl Serialize for Captcha"],["impl Serialize for CreatePerformanceAnalytics"],["impl Serialize for EasyCaptcha"],["impl Serialize for NameHash"],["impl Serialize for Notification"],["impl Serialize for PerformanceAnalytics"],["impl Serialize for Secret"],["impl Serialize for StatsUnixTimestamp"],["impl Serialize for TrafficPattern"],["impl<'a> Serialize for Login<'a>"],["impl<'a> Serialize for AddNotification<'a>"],["impl<'a> Serialize for CreateCaptcha<'a>"],["impl<'a> Serialize for Register<'a>"],["impl<'a> Serialize for UpdateEmail<'a>"]]],["mcaptcha",[["impl Serialize for DBType"],["impl Serialize for Email"],["impl Serialize for ChangePasswordReqest"],["impl Serialize for AccountCheckPayload"],["impl Serialize for AccountCheckResp"],["impl Serialize for Username"],["impl Serialize for Login"],["impl Serialize for Password"],["impl Serialize for Register"],["impl Serialize for CreateCaptcha"],["impl Serialize for MCaptchaDetails"],["impl Serialize for DeleteCaptcha"],["impl Serialize for TrafficPatternRequest"],["impl Serialize for UpdateTrafficPattern"],["impl Serialize for I32Levels"],["impl Serialize for Levels"],["impl Serialize for StatsPayload"],["impl Serialize for UpdateCaptcha"],["impl Serialize for BuildDetails"],["impl Serialize for Health"],["impl Serialize for AddNotificationRequest"],["impl Serialize for NotificationResp"],["impl Serialize for MarkReadReq"],["impl Serialize for ApiPoWConfig"],["impl Serialize for GetConfigPayload"],["impl Serialize for ApiWork"],["impl Serialize for ValidationToken"],["impl Serialize for CaptchaValidateResp"],["impl Serialize for VerifyCaptchaResultPayload"],["impl Serialize for Stats"],["impl Serialize for BuildDetails"],["impl Serialize for PercentileReq"],["impl Serialize for PercentileResp"],["impl Serialize for Page"],["impl Serialize for SurveySecretUpload"],["impl Serialize for ErrorToResponse"],["impl Serialize for CaptchaStats"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[4143,12326]} \ No newline at end of file diff --git a/type.impl/actix_web/data/struct.Data.js b/type.impl/actix_web/data/struct.Data.js index 9c33094c..5a6e4cf4 100644 --- a/type.impl/actix_web/data/struct.Data.js +++ b/type.impl/actix_web/data/struct.Data.js @@ -1,3 +1,9 @@ -(function() {var type_impls = { -"mcaptcha":[["
    §

    impl<T> Data<T>

    pub fn new(state: T) -> Data<T>

    Create new Data instance.

    \n
    ",0,"mcaptcha::AppData"],["
    §

    impl<T> Data<T>
    where\n T: ?Sized,

    pub fn get_ref(&self) -> &T

    Returns reference to inner T.

    \n

    pub fn into_inner(self) -> Arc<T>

    Unwraps to the internal Arc<T>

    \n
    ",0,"mcaptcha::AppData"],["
    §

    impl<T> Serialize for Data<T>
    where\n T: Serialize,

    §

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::AppData"],["
    §

    impl<T> FromRequest for Data<T>
    where\n T: 'static + ?Sized,

    §

    type Error = Error

    The associated error which can be returned.
    §

    type Future = Ready<Result<Data<T>, Error>>

    Future that resolves to a Self. Read more
    §

    fn from_request(\n req: &HttpRequest,\n _: &mut Payload\n) -> <Data<T> as FromRequest>::Future

    Create a Self from request parts asynchronously.
    §

    fn extract(req: &HttpRequest) -> Self::Future

    Create a Self from request head asynchronously. Read more
    ","FromRequest","mcaptcha::AppData"],["
    §

    impl<T> Deref for Data<T>
    where\n T: ?Sized,

    §

    type Target = Arc<T>

    The resulting type after dereferencing.
    §

    fn deref(&self) -> &Arc<T>

    Dereferences the value.
    ","Deref","mcaptcha::AppData"],["
    §

    impl<T> From<Arc<T>> for Data<T>
    where\n T: ?Sized,

    §

    fn from(arc: Arc<T>) -> Data<T>

    Converts to this type from the input type.
    ","From>","mcaptcha::AppData"],["
    §

    impl<T> Debug for Data<T>
    where\n T: Debug + ?Sized,

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::AppData"],["
    §

    impl<T> Clone for Data<T>
    where\n T: ?Sized,

    §

    fn clone(&self) -> Data<T>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::AppData"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["mcaptcha",[["
    §

    impl<T> Clone for Data<T>
    where\n T: ?Sized,

    §

    fn clone(&self) -> Data<T>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::AppData"],["
    §

    impl<T> Data<T>

    pub fn new(state: T) -> Data<T>

    Create new Data instance.

    \n
    ",0,"mcaptcha::AppData"],["
    §

    impl<T> Data<T>
    where\n T: ?Sized,

    pub fn get_ref(&self) -> &T

    Returns reference to inner T.

    \n

    pub fn into_inner(self) -> Arc<T>

    Unwraps to the internal Arc<T>

    \n
    ",0,"mcaptcha::AppData"],["
    §

    impl<T> Debug for Data<T>
    where\n T: Debug + ?Sized,

    §

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::AppData"],["
    §

    impl<T> Default for Data<T>
    where\n T: Default,

    §

    fn default() -> Data<T>

    Returns the “default value” for a type. Read more
    ","Default","mcaptcha::AppData"],["
    §

    impl<'de, T> Deserialize<'de> for Data<T>
    where\n T: Deserialize<'de>,

    §

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Data<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::AppData"],["
    §

    impl<T> From<Arc<T>> for Data<T>
    where\n T: ?Sized,

    §

    fn from(arc: Arc<T>) -> Data<T>

    Converts to this type from the input type.
    ","From>","mcaptcha::AppData"],["
    §

    impl<T> FromRequest for Data<T>
    where\n T: 'static + ?Sized,

    §

    type Error = Error

    The associated error which can be returned.
    §

    type Future = Ready<Result<Data<T>, Error>>

    Future that resolves to a Self. Read more
    §

    fn from_request(\n req: &HttpRequest,\n _: &mut Payload,\n) -> <Data<T> as FromRequest>::Future

    Create a Self from request parts asynchronously.
    §

    fn extract(req: &HttpRequest) -> Self::Future

    Create a Self from request head asynchronously. Read more
    ","FromRequest","mcaptcha::AppData"],["
    §

    impl<T> Serialize for Data<T>
    where\n T: Serialize,

    §

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::AppData"],["
    §

    impl<T> Deref for Data<T>
    where\n T: ?Sized,

    §

    type Target = Arc<T>

    The resulting type after dereferencing.
    §

    fn deref(&self) -> &Arc<T>

    Dereferences the value.
    ","Deref","mcaptcha::AppData"]]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[16986]} \ No newline at end of file diff --git a/type.impl/alloc/boxed/struct.Box.js b/type.impl/alloc/boxed/struct.Box.js index 4af2f41b..0ac964cb 100644 --- a/type.impl/alloc/boxed/struct.Box.js +++ b/type.impl/alloc/boxed/struct.Box.js @@ -1,6 +1,9 @@ -(function() {var type_impls = { -"db_core":[["
    source§

    impl<T> Box<T>

    1.0.0 · source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet mut five = Box::<u32>::new_uninit();\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"db_core::errors::BoxDynError"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"db_core::errors::BoxDynError"],["
    source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    ",0,"db_core::errors::BoxDynError"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    const: unstable · source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    1.4.0 · source

    pub fn into_raw(b: Box<T, A>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    const: unstable · source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 (const: unstable) · source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    1.55.0 · source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (seek_seek_relative)
    Seeks relative to the current position. Read more
    ","Seek","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Write a buffer into this writer, returning how many bytes were written. Read more
    source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    source§

    fn flush(&mut self) -> Result<(), Error>

    Flush this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","db_core::errors::BoxDynError"],["
    1.64.0 · source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd,

    source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    source§

    fn consume(&mut self, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to read. Read more
    source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes into buf until the delimiter byte or EOF is reached. Read more
    source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Check if the underlying Read has any data left to be read. Read more
    source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    🔬This is a nightly-only experimental API. (bufread_skip_until)
    Skip all bytes until the delimiter byte or EOF is reached. Read more
    1.0.0 · source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes until EOF in this source, placing them into buf. Read more
    source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until EOF in this source, appending them to buf. Read more
    source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Read the exact number of bytes required to fill buf. Read more
    source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Read the exact number of bytes required to fill cursor. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","db_core::errors::BoxDynError"],["
    1.63.0 · source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","db_core::errors::BoxDynError"],["
    1.5.0 · source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","db_core::errors::BoxDynError"],["
    1.33.0 · source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator + 'static,\n T: ?Sized,

    ","Unpin","db_core::errors::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","db_core::errors::BoxDynError"],["
    source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    §

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","db_core::errors::BoxDynError"],["
    source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    §

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempt to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","db_core::errors::BoxDynError"],["
    1.26.0 · source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    source§

    fn lt(&self, other: &Box<T, A>) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    source§

    fn le(&self, other: &Box<T, A>) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    source§

    fn ge(&self, other: &Box<T, A>) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    source§

    fn gt(&self, other: &Box<T, A>) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    ","PartialOrd","db_core::errors::BoxDynError"],["
    1.8.0 · source§

    impl<T> Error for Box<T>
    where\n T: Error,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    ","Error","db_core::errors::BoxDynError"],["
    1.6.0 · source§

    impl From<String> for Box<dyn Error>

    source§

    fn from(str_err: String) -> Box<dyn Error>

    Converts a String into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error>::from(a_string_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.22.0 · source§

    impl<'a> From<Cow<'a, str>> for Box<dyn Error>

    source§

    fn from(err: Cow<'a, str>) -> Box<dyn Error>

    Converts a Cow into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error>::from(a_cow_str_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From>","db_core::errors::BoxDynError"],["
    1.6.0 · source§

    impl<T> From<T> for Box<T>

    source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<'a, E> From<E> for Box<dyn Error + 'a>
    where\n E: Error + 'a,

    source§

    fn from(err: E) -> Box<dyn Error + 'a>

    Converts a type of Error into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\nuse std::mem;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nlet an_error = AnError;\nassert!(0 == mem::size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error>::from(an_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<'a> From<&str> for Box<dyn Error + Send + Sync + 'a>

    source§

    fn from(err: &str) -> Box<dyn Error + Send + Sync + 'a>

    Converts a str into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_str_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<'a, E> From<E> for Box<dyn Error + Send + Sync + 'a>
    where\n E: Error + Send + Sync + 'a,

    source§

    fn from(err: E) -> Box<dyn Error + Send + Sync + 'a>

    Converts a type of Error + Send + Sync into a box of\ndyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\nuse std::mem;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nunsafe impl Send for AnError {}\n\nunsafe impl Sync for AnError {}\n\nlet an_error = AnError;\nassert!(0 == mem::size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(an_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.6.0 · source§

    impl From<&str> for Box<dyn Error>

    source§

    fn from(err: &str) -> Box<dyn Error>

    Converts a str into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error>::from(a_str_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_core::errors::BoxDynError"],["
    1.22.0 · source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Send + Sync + 'a>

    source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + Send + Sync + 'a>

    Converts a Cow into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_cow_str_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From>","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl From<String> for Box<dyn Error + Send + Sync>

    source§

    fn from(err: String) -> Box<dyn Error + Send + Sync>

    Converts a String into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_string_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","db_core::errors::BoxDynError"],["
    1.1.0 · source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    §

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    source§

    fn next_chunk<const N: usize>(\n &mut self\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows an iterator, rather than consuming it. Read more
    1.0.0 · source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    source§

    fn try_reduce<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> R,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    source§

    fn try_find<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n F: FnMut(&Self::Item) -> R,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.6.0 · source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: 'a + Copy,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: 'a + Clone,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","db_core::errors::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call(\n &self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","db_core::errors::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    §

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    source§

    extern "rust-call" fn call_once(\n self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T> Default for Box<T>
    where\n T: Default,

    source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","db_core::errors::BoxDynError"],["
    1.22.0 · source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","db_core::errors::BoxDynError"],["
    1.1.0 · source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    source§

    fn eq(&self, other: &Box<T, A>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Box<T, A>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","db_core::errors::BoxDynError"],["
    1.36.0 · source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Output = <F as Future>::Output

    The type of value produced on completion.
    source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempt to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter.
    ","Pointer","db_core::errors::BoxDynError"],["
    1.5.0 · source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","db_core::errors::BoxDynError"],["
    source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","db_core::errors::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_core::errors::BoxDynError"],["
    source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","db_core::errors::BoxDynError"],["
    source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_core::errors::BoxDynError"],["
    source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","db_core::errors::BoxDynError"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","db_core::errors::BoxDynError"],["
    source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    source§

    fn flush(&self)

    Flushes any buffered records.
    ","Log","db_core::errors::BoxDynError"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return shorter slice (this allows\nnon-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","db_core::errors::BoxDynError"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","db_core::errors::BoxDynError"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","db_core::errors::BoxDynError"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","db_core::errors::BoxDynError"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","db_core::errors::BoxDynError"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","db_core::errors::BoxDynError"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","db_core::errors::BoxDynError"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","db_core::errors::BoxDynError"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_core::errors::BoxDynError"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Parser<Input> + Sized,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Parser<Input> + Sized,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<M, 'a, 's>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Parser<Input> + Sized,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self\n) -> Box<dyn Parser<Input, Output = Self::Output, PartialState = Self::PartialState> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","db_core::errors::BoxDynError"],["
    §

    impl<T> Value for Box<T>
    where\n T: Value + ?Sized,

    §

    fn record(&self, key: &Field, visitor: &mut dyn Visit)

    Visits this value with the given Visitor.
    ","Value","db_core::errors::BoxDynError"],["
    §

    impl<S> Subscriber for Box<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","db_core::errors::BoxDynError"],["
    source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","db_core::errors::BoxDynError"],["
    source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","db_core::errors::BoxDynError"],["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value that this future will resolved with if it is\nsuccessful.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","db_core::errors::BoxDynError"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","db_core::errors::BoxDynError"]], -"db_sqlx_maria":[["
    source§

    impl<T> Box<T>

    1.0.0 · source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet mut five = Box::<u32>::new_uninit();\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    const: unstable · source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    1.4.0 · source

    pub fn into_raw(b: Box<T, A>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    const: unstable · source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 (const: unstable) · source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    1.55.0 · source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (seek_seek_relative)
    Seeks relative to the current position. Read more
    ","Seek","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Write a buffer into this writer, returning how many bytes were written. Read more
    source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    source§

    fn flush(&mut self) -> Result<(), Error>

    Flush this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.64.0 · source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd,

    source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    source§

    fn consume(&mut self, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to read. Read more
    source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes into buf until the delimiter byte or EOF is reached. Read more
    source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Check if the underlying Read has any data left to be read. Read more
    source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    🔬This is a nightly-only experimental API. (bufread_skip_until)
    Skip all bytes until the delimiter byte or EOF is reached. Read more
    1.0.0 · source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes until EOF in this source, placing them into buf. Read more
    source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until EOF in this source, appending them to buf. Read more
    source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Read the exact number of bytes required to fill buf. Read more
    source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Read the exact number of bytes required to fill cursor. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.63.0 · source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.5.0 · source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.33.0 · source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator + 'static,\n T: ?Sized,

    ","Unpin","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    §

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    §

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempt to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.26.0 · source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    source§

    fn lt(&self, other: &Box<T, A>) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    source§

    fn le(&self, other: &Box<T, A>) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    source§

    fn ge(&self, other: &Box<T, A>) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    source§

    fn gt(&self, other: &Box<T, A>) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    ","PartialOrd","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.8.0 · source§

    impl<T> Error for Box<T>
    where\n T: Error,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    ","Error","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.6.0 · source§

    impl From<String> for Box<dyn Error>

    source§

    fn from(str_err: String) -> Box<dyn Error>

    Converts a String into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error>::from(a_string_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.22.0 · source§

    impl<'a> From<Cow<'a, str>> for Box<dyn Error>

    source§

    fn from(err: Cow<'a, str>) -> Box<dyn Error>

    Converts a Cow into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error>::from(a_cow_str_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.6.0 · source§

    impl<T> From<T> for Box<T>

    source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<'a, E> From<E> for Box<dyn Error + 'a>
    where\n E: Error + 'a,

    source§

    fn from(err: E) -> Box<dyn Error + 'a>

    Converts a type of Error into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\nuse std::mem;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nlet an_error = AnError;\nassert!(0 == mem::size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error>::from(an_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<'a> From<&str> for Box<dyn Error + Send + Sync + 'a>

    source§

    fn from(err: &str) -> Box<dyn Error + Send + Sync + 'a>

    Converts a str into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_str_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<'a, E> From<E> for Box<dyn Error + Send + Sync + 'a>
    where\n E: Error + Send + Sync + 'a,

    source§

    fn from(err: E) -> Box<dyn Error + Send + Sync + 'a>

    Converts a type of Error + Send + Sync into a box of\ndyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\nuse std::mem;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nunsafe impl Send for AnError {}\n\nunsafe impl Sync for AnError {}\n\nlet an_error = AnError;\nassert!(0 == mem::size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(an_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.6.0 · source§

    impl From<&str> for Box<dyn Error>

    source§

    fn from(err: &str) -> Box<dyn Error>

    Converts a str into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error>::from(a_str_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.22.0 · source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Send + Sync + 'a>

    source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + Send + Sync + 'a>

    Converts a Cow into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_cow_str_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl From<String> for Box<dyn Error + Send + Sync>

    source§

    fn from(err: String) -> Box<dyn Error + Send + Sync>

    Converts a String into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_string_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.1.0 · source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    §

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    source§

    fn next_chunk<const N: usize>(\n &mut self\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows an iterator, rather than consuming it. Read more
    1.0.0 · source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    source§

    fn try_reduce<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> R,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    source§

    fn try_find<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n F: FnMut(&Self::Item) -> R,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.6.0 · source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: 'a + Copy,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: 'a + Clone,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call(\n &self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    §

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    source§

    extern "rust-call" fn call_once(\n self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T> Default for Box<T>
    where\n T: Default,

    source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.22.0 · source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.1.0 · source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    source§

    fn eq(&self, other: &Box<T, A>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Box<T, A>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.36.0 · source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Output = <F as Future>::Output

    The type of value produced on completion.
    source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempt to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter.
    ","Pointer","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.5.0 · source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    source§

    fn flush(&self)

    Flushes any buffered records.
    ","Log","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return shorter slice (this allows\nnon-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Parser<Input> + Sized,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Parser<Input> + Sized,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<M, 'a, 's>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Parser<Input> + Sized,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self\n) -> Box<dyn Parser<Input, Output = Self::Output, PartialState = Self::PartialState> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> Value for Box<T>
    where\n T: Value + ?Sized,

    §

    fn record(&self, key: &Field, visitor: &mut dyn Visit)

    Visits this value with the given Visitor.
    ","Value","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> Subscriber for Box<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value that this future will resolved with if it is\nsuccessful.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> Socket for Box<S>
    where\n S: Socket + ?Sized,

    §

    fn try_read(&mut self, buf: &mut dyn ReadBuf) -> Result<usize, Error>

    §

    fn try_write(&mut self, buf: &[u8]) -> Result<usize, Error>

    §

    fn poll_read_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_write_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_shutdown(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn read<B, 'a>(&'a mut self, buf: &'a mut B) -> Read<'a, Self, B>
    where\n B: ReadBuf,\n Self: Sized,

    §

    fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>
    where\n Self: Sized,

    §

    fn flush(&mut self) -> Flush<'_, Self>
    where\n Self: Sized,

    §

    fn shutdown(&mut self) -> Shutdown<'_, Self>
    where\n Self: Sized,

    ","Socket","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<'a, T> DecodeValue<'a> for Box<T>
    where\n T: DecodeValue<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<Box<T>, Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<'a, T> Sequence<'a> for Box<T>
    where\n T: Sequence<'a>,

    ","Sequence<'a>","db_sqlx_maria::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> EncodeValue for Box<T>
    where\n T: EncodeValue,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    ","EncodeValue","db_sqlx_maria::dev::prelude::dev::BoxDynError"]], -"db_sqlx_postgres":[["
    source§

    impl<T> Box<T>

    1.0.0 · source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet mut five = Box::<u32>::new_uninit();\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    const: unstable · source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    1.4.0 · source

    pub fn into_raw(b: Box<T, A>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    const: unstable · source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 (const: unstable) · source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    1.55.0 · source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (seek_seek_relative)
    Seeks relative to the current position. Read more
    ","Seek","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Write a buffer into this writer, returning how many bytes were written. Read more
    source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    source§

    fn flush(&mut self) -> Result<(), Error>

    Flush this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.64.0 · source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd,

    source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    source§

    fn consume(&mut self, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to read. Read more
    source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes into buf until the delimiter byte or EOF is reached. Read more
    source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Check if the underlying Read has any data left to be read. Read more
    source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    🔬This is a nightly-only experimental API. (bufread_skip_until)
    Skip all bytes until the delimiter byte or EOF is reached. Read more
    1.0.0 · source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes until EOF in this source, placing them into buf. Read more
    source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until EOF in this source, appending them to buf. Read more
    source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Read the exact number of bytes required to fill buf. Read more
    source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Read the exact number of bytes required to fill cursor. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.63.0 · source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.5.0 · source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.33.0 · source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator + 'static,\n T: ?Sized,

    ","Unpin","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    §

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    §

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempt to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.26.0 · source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    source§

    fn lt(&self, other: &Box<T, A>) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    source§

    fn le(&self, other: &Box<T, A>) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    source§

    fn ge(&self, other: &Box<T, A>) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    source§

    fn gt(&self, other: &Box<T, A>) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    ","PartialOrd","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.8.0 · source§

    impl<T> Error for Box<T>
    where\n T: Error,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    ","Error","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.6.0 · source§

    impl From<String> for Box<dyn Error>

    source§

    fn from(str_err: String) -> Box<dyn Error>

    Converts a String into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error>::from(a_string_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.22.0 · source§

    impl<'a> From<Cow<'a, str>> for Box<dyn Error>

    source§

    fn from(err: Cow<'a, str>) -> Box<dyn Error>

    Converts a Cow into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error>::from(a_cow_str_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.6.0 · source§

    impl<T> From<T> for Box<T>

    source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<'a, E> From<E> for Box<dyn Error + 'a>
    where\n E: Error + 'a,

    source§

    fn from(err: E) -> Box<dyn Error + 'a>

    Converts a type of Error into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\nuse std::mem;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nlet an_error = AnError;\nassert!(0 == mem::size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error>::from(an_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<'a> From<&str> for Box<dyn Error + Send + Sync + 'a>

    source§

    fn from(err: &str) -> Box<dyn Error + Send + Sync + 'a>

    Converts a str into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_str_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<'a, E> From<E> for Box<dyn Error + Send + Sync + 'a>
    where\n E: Error + Send + Sync + 'a,

    source§

    fn from(err: E) -> Box<dyn Error + Send + Sync + 'a>

    Converts a type of Error + Send + Sync into a box of\ndyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\nuse std::mem;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nunsafe impl Send for AnError {}\n\nunsafe impl Sync for AnError {}\n\nlet an_error = AnError;\nassert!(0 == mem::size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(an_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.6.0 · source§

    impl From<&str> for Box<dyn Error>

    source§

    fn from(err: &str) -> Box<dyn Error>

    Converts a str into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error>::from(a_str_error);\nassert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.22.0 · source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Send + Sync + 'a>

    source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + Send + Sync + 'a>

    Converts a Cow into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_cow_str_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl From<String> for Box<dyn Error + Send + Sync>

    source§

    fn from(err: String) -> Box<dyn Error + Send + Sync>

    Converts a String into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::mem;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_string_error);\nassert!(\n    mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.1.0 · source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    §

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    source§

    fn next_chunk<const N: usize>(\n &mut self\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows an iterator, rather than consuming it. Read more
    1.0.0 · source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    source§

    fn try_reduce<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> R,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    source§

    fn try_find<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n F: FnMut(&Self::Item) -> R,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.6.0 · source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: 'a + Copy,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: 'a + Clone,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call(\n &self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.35.0 · source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    §

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    source§

    extern "rust-call" fn call_once(\n self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T> Default for Box<T>
    where\n T: Default,

    source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.22.0 · source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.1.0 · source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    source§

    fn eq(&self, other: &Box<T, A>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Box<T, A>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.36.0 · source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Output = <F as Future>::Output

    The type of value produced on completion.
    source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempt to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter.
    ","Pointer","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.5.0 · source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    1.0.0 · source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    source§

    fn flush(&self)

    Flushes any buffered records.
    ","Log","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return shorter slice (this allows\nnon-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Parser<Input> + Sized,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Parser<Input> + Sized,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<M, 'a, 's>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Parser<Input> + Sized,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self\n) -> Box<dyn Parser<Input, Output = Self::Output, PartialState = Self::PartialState> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> Value for Box<T>
    where\n T: Value + ?Sized,

    §

    fn record(&self, key: &Field, visitor: &mut dyn Visit)

    Visits this value with the given Visitor.
    ","Value","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> Subscriber for Box<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value that this future will resolved with if it is\nsuccessful.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<S> Socket for Box<S>
    where\n S: Socket + ?Sized,

    §

    fn try_read(&mut self, buf: &mut dyn ReadBuf) -> Result<usize, Error>

    §

    fn try_write(&mut self, buf: &[u8]) -> Result<usize, Error>

    §

    fn poll_read_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_write_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_shutdown(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn read<B, 'a>(&'a mut self, buf: &'a mut B) -> Read<'a, Self, B>
    where\n B: ReadBuf,\n Self: Sized,

    §

    fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>
    where\n Self: Sized,

    §

    fn flush(&mut self) -> Flush<'_, Self>
    where\n Self: Sized,

    §

    fn shutdown(&mut self) -> Shutdown<'_, Self>
    where\n Self: Sized,

    ","Socket","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<'a, T> DecodeValue<'a> for Box<T>
    where\n T: DecodeValue<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<Box<T>, Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<'a, T> Sequence<'a> for Box<T>
    where\n T: Sequence<'a>,

    ","Sequence<'a>","db_sqlx_postgres::dev::prelude::dev::BoxDynError"],["
    §

    impl<T> EncodeValue for Box<T>
    where\n T: EncodeValue,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    ","EncodeValue","db_sqlx_postgres::dev::prelude::dev::BoxDynError"]], -"mcaptcha":[["
    source§

    impl<T> Box<T>

    1.0.0 · source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet mut five = Box::<u32>::new_uninit();\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    five.as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api, new_uninit)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    const: unstable · source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    1.4.0 · source

    pub fn into_raw(b: Box<T, A>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    const: unstable · source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 (const: unstable) · source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    1.55.0 · source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (seek_seek_relative)
    Seeks relative to the current position. Read more
    ","Seek","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Write a buffer into this writer, returning how many bytes were written. Read more
    source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    source§

    fn flush(&mut self) -> Result<(), Error>

    Flush this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","mcaptcha::db::BoxDB"],["
    1.64.0 · source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd,

    source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    source§

    fn consume(&mut self, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to read. Read more
    source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes into buf until the delimiter byte or EOF is reached. Read more
    source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Check if the underlying Read has any data left to be read. Read more
    source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    🔬This is a nightly-only experimental API. (bufread_skip_until)
    Skip all bytes until the delimiter byte or EOF is reached. Read more
    1.0.0 · source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Read all bytes until EOF in this source, placing them into buf. Read more
    source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Read all bytes until EOF in this source, appending them to buf. Read more
    source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Read the exact number of bytes required to fill buf. Read more
    source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Read the exact number of bytes required to fill cursor. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","mcaptcha::db::BoxDB"],["
    1.63.0 · source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","mcaptcha::db::BoxDB"],["
    1.5.0 · source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","mcaptcha::db::BoxDB"],["
    1.33.0 · source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator + 'static,\n T: ?Sized,

    ","Unpin","mcaptcha::db::BoxDB"],["
    1.35.0 · source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","mcaptcha::db::BoxDB"],["
    source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    §

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","mcaptcha::db::BoxDB"],["
    source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    §

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempt to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","mcaptcha::db::BoxDB"],["
    1.26.0 · source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    source§

    fn lt(&self, other: &Box<T, A>) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    source§

    fn le(&self, other: &Box<T, A>) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    source§

    fn ge(&self, other: &Box<T, A>) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    source§

    fn gt(&self, other: &Box<T, A>) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    ","PartialOrd","mcaptcha::db::BoxDB"],["
    1.8.0 · source§

    impl<T> Error for Box<T>
    where\n T: Error,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    ","Error","mcaptcha::db::BoxDB"],["
    1.6.0 · source§

    impl<T> From<T> for Box<T>

    source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","mcaptcha::db::BoxDB"],["
    1.1.0 · source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    §

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    source§

    fn next_chunk<const N: usize>(\n &mut self\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows an iterator, rather than consuming it. Read more
    1.0.0 · source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    source§

    fn try_reduce<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> R,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    source§

    fn try_find<F, R>(\n &mut self,\n f: F\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n F: FnMut(&Self::Item) -> R,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.6.0 · source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: 'a + Copy,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: 'a + Clone,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","mcaptcha::db::BoxDB"],["
    1.35.0 · source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    source§

    extern "rust-call" fn call(\n &self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","mcaptcha::db::BoxDB"],["
    1.35.0 · source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    §

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    source§

    extern "rust-call" fn call_once(\n self,\n args: Args\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T> Default for Box<T>
    where\n T: Default,

    source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","mcaptcha::db::BoxDB"],["
    1.22.0 · source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","mcaptcha::db::BoxDB"],["
    1.1.0 · source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    source§

    fn eq(&self, other: &Box<T, A>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Box<T, A>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","mcaptcha::db::BoxDB"],["
    1.36.0 · source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator + 'static,

    §

    type Output = <F as Future>::Output

    The type of value produced on completion.
    source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempt to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter.
    ","Pointer","mcaptcha::db::BoxDB"],["
    1.5.0 · source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","mcaptcha::db::BoxDB"],["
    source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","mcaptcha::db::BoxDB"],["
    1.0.0 · source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","mcaptcha::db::BoxDB"],["
    source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","mcaptcha::db::BoxDB"],["
    §

    impl<B> MessageBody for Box<B>
    where\n B: MessageBody + Unpin + ?Sized,

    §

    type Error = <B as MessageBody>::Error

    The type of error that will be returned if streaming body fails. Read more
    §

    fn size(&self) -> BodySize

    Body size hint. Read more
    §

    fn poll_next(\n self: Pin<&mut Box<B>>,\n cx: &mut Context<'_>\n) -> Poll<Option<Result<Bytes, <Box<B> as MessageBody>::Error>>>

    Attempt to pull out the next chunk of body bytes. Read more
    §

    fn try_into_bytes(self) -> Result<Bytes, Self>
    where\n Self: Sized,

    Try to convert into the complete chunk of body bytes. Read more
    §

    fn boxed(self) -> BoxBody
    where\n Self: Sized + 'static,

    Wraps this body into a BoxBody. Read more
    ","MessageBody","mcaptcha::db::BoxDB"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return shorter slice (this allows\nnon-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","mcaptcha::db::BoxDB"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","mcaptcha::db::BoxDB"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","mcaptcha::db::BoxDB"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","mcaptcha::db::BoxDB"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","mcaptcha::db::BoxDB"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","mcaptcha::db::BoxDB"],["
    source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    source§

    fn flush(&self)

    Flushes any buffered records.
    ","Log","mcaptcha::db::BoxDB"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","mcaptcha::db::BoxDB"],["
    §

    impl<T> Value for Box<T>
    where\n T: Value + ?Sized,

    §

    fn record(&self, key: &Field, visitor: &mut dyn Visit)

    Visits this value with the given Visitor.
    ","Value","mcaptcha::db::BoxDB"],["
    §

    impl<S> Subscriber for Box<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","mcaptcha::db::BoxDB"],["
    §

    impl<S, Req> Service<Req> for Box<S>
    where\n S: Service<Req> + ?Sized,

    §

    type Response = <S as Service<Req>>::Response

    Responses given by the service.
    §

    type Error = <S as Service<Req>>::Error

    Errors produced by the service when polling readiness or executing call.
    §

    type Future = <S as Service<Req>>::Future

    The future response value.
    §

    fn poll_ready(\n &self,\n ctx: &mut Context<'_>\n) -> Poll<Result<(), <S as Service<Req>>::Error>>

    Returns Ready when the service is able to process requests. Read more
    §

    fn call(&self, request: Req) -> <S as Service<Req>>::Future

    Process the request and return the response asynchronously. Read more
    ","Service","mcaptcha::db::BoxDB"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","mcaptcha::db::BoxDB"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","mcaptcha::db::BoxDB"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>]\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","mcaptcha::db::BoxDB"],["
    source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","mcaptcha::db::BoxDB"],["
    source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","mcaptcha::db::BoxDB"],["
    source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::db::BoxDB"],["
    source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::db::BoxDB"],["
    source§

    impl Clone for Box<dyn MCDatabase>

    source§

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::db::BoxDB"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Parser<Input> + Sized,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Parser<Input> + Sized,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<M, 'a, 's>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Parser<Input> + Sized,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self\n) -> Box<dyn Parser<Input, Output = Self::Output, PartialState = Self::PartialState> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","mcaptcha::db::BoxDB"],["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value that this future will resolved with if it is\nsuccessful.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","mcaptcha::db::BoxDB"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","mcaptcha::db::BoxDB"],["
    source§

    impl<T> Body for Box<T>
    where\n T: Body + Unpin + ?Sized,

    §

    type Data = <T as Body>::Data

    Values yielded by the Body.
    §

    type Error = <T as Body>::Error

    The error type this Body might generate.
    source§

    fn poll_data(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Option<Result<<Box<T> as Body>::Data, <Box<T> as Body>::Error>>>

    Attempt to pull out the next data buffer of this stream.
    source§

    fn poll_trailers(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>\n) -> Poll<Result<Option<HeaderMap>, <Box<T> as Body>::Error>>

    Poll for an optional single HeaderMap of trailers. Read more
    source§

    fn is_end_stream(&self) -> bool

    Returns true when the end of stream has been reached. Read more
    source§

    fn size_hint(&self) -> SizeHint

    Returns the bounds on the remaining length of the stream. Read more
    source§

    fn data(&mut self) -> Data<'_, Self>
    where\n Self: Unpin + Sized,

    Returns future that resolves to next data chunk, if any.
    source§

    fn trailers(&mut self) -> Trailers<'_, Self>
    where\n Self: Unpin + Sized,

    Returns future that resolves to trailers, if any.
    source§

    fn map_data<F, B>(self, f: F) -> MapData<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Data) -> B,\n B: Buf,

    Maps this body’s data value to a different value.
    source§

    fn map_err<F, E>(self, f: F) -> MapErr<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Error) -> E,

    Maps this body’s error value to a different value.
    ","Body","mcaptcha::db::BoxDB"],["
    §

    impl<S, Request> Service<Request> for Box<S>
    where\n S: Service<Request> + ?Sized,

    §

    type Response = <S as Service<Request>>::Response

    Responses given by the service.
    §

    type Error = <S as Service<Request>>::Error

    Errors produced by the service.
    §

    type Future = <S as Service<Request>>::Future

    The future response value.
    §

    fn poll_ready(\n &mut self,\n cx: &mut Context<'_>\n) -> Poll<Result<(), <S as Service<Request>>::Error>>

    Returns Poll::Ready(Ok(())) when the service is able to process requests. Read more
    §

    fn call(&mut self, request: Request) -> <S as Service<Request>>::Future

    Process the request and return the response asynchronously. Read more
    ","Service","mcaptcha::db::BoxDB"],["
    §

    impl<S> Socket for Box<S>
    where\n S: Socket + ?Sized,

    §

    fn try_read(&mut self, buf: &mut dyn ReadBuf) -> Result<usize, Error>

    §

    fn try_write(&mut self, buf: &[u8]) -> Result<usize, Error>

    §

    fn poll_read_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_write_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_shutdown(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn read<B, 'a>(&'a mut self, buf: &'a mut B) -> Read<'a, Self, B>
    where\n B: ReadBuf,\n Self: Sized,

    §

    fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>
    where\n Self: Sized,

    §

    fn flush(&mut self) -> Flush<'_, Self>
    where\n Self: Sized,

    §

    fn shutdown(&mut self) -> Shutdown<'_, Self>
    where\n Self: Sized,

    ","Socket","mcaptcha::db::BoxDB"],["
    §

    impl<'a, T> DecodeValue<'a> for Box<T>
    where\n T: DecodeValue<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<Box<T>, Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","mcaptcha::db::BoxDB"],["
    §

    impl<'a, T> Sequence<'a> for Box<T>
    where\n T: Sequence<'a>,

    ","Sequence<'a>","mcaptcha::db::BoxDB"],["
    §

    impl<T> EncodeValue for Box<T>
    where\n T: EncodeValue,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    ","EncodeValue","mcaptcha::db::BoxDB"],["
    §

    impl<T> Render for Box<T>
    where\n T: Render + ?Sized,

    §

    fn render(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer without escaping
    §

    fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer with HTML escaping
    ","Render","mcaptcha::db::BoxDB"],["
    §

    impl<T> WriteColor for Box<T>
    where\n T: WriteColor + ?Sized,

    §

    fn supports_color(&self) -> bool

    Returns true if and only if the underlying writer supports colors.
    §

    fn set_color(&mut self, spec: &ColorSpec) -> Result<(), Error>

    Set the color settings of the writer. Read more
    §

    fn reset(&mut self) -> Result<(), Error>

    Reset the current color settings to their original settings. Read more
    §

    fn is_synchronous(&self) -> bool

    Returns true if and only if the underlying writer must synchronously\ninteract with an end user’s device in order to control colors. By\ndefault, this always returns false. Read more
    ","WriteColor","mcaptcha::db::BoxDB"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["db_core",[["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value produced on completion.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>,\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","db_core::errors::BoxDynError"],["
    §

    impl<T> AnyProvider for Box<T>
    where\n T: AnyProvider + ?Sized,

    §

    fn load_any(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<AnyResponse, DataError>

    Loads an [AnyPayload] according to the key and request.
    ","AnyProvider","db_core::errors::BoxDynError"],["
    1.64.0 · Source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd + ?Sized,

    Source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","db_core::errors::BoxDynError"],["
    1.5.0 · Source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","db_core::errors::BoxDynError"],["
    1.63.0 · Source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    Source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","db_core::errors::BoxDynError"],["
    1.5.0 · Source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_core::errors::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn async_call(\n &self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFn, returning a future which may borrow from the called closure.
    ","AsyncFn","db_core::errors::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    type CallRefFuture<'a> = <F as AsyncFnMut<Args>>::CallRefFuture<'a>\nwhere\n Box<F, A>: 'a

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Source§

    extern "rust-call" fn async_call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnMut, returning a future which may borrow from the called closure.
    ","AsyncFnMut","db_core::errors::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as AsyncFnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Output type of the called closure’s future.
    Source§

    type CallOnceFuture = <F as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Future returned by AsyncFnOnce::async_call_once.
    Source§

    extern "rust-call" fn async_call_once(\n self,\n args: Args,\n) -> <Box<F, A> as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnOnce, returning a future which may move out of the called closure.
    ","AsyncFnOnce","db_core::errors::BoxDynError"],["
    Source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    Source§

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    Source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempts to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom,\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","db_core::errors::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","db_core::errors::BoxDynError"],["
    1.1.0 · Source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","db_core::errors::BoxDynError"],["
    1.1.0 · Source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","db_core::errors::BoxDynError"],["
    §

    impl<M, P> BoundDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: BoundDataProvider<M> + ?Sized,

    §

    fn load_bound(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    §

    fn bound_key(&self) -> DataKey

    Returns the [DataKey] that this provider uses for loading data.
    ","BoundDataProvider","db_core::errors::BoxDynError"],["
    Source§

    impl<T> Box<T>

    1.0.0 · Source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    1.82.0 · Source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    let mut five = Box::<u32>::new_uninit();\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_zeroed_alloc)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_zeroed_alloc)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · Source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    Source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    Source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"db_core::errors::BoxDynError"],["
    Source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · Source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    Source

    pub unsafe fn from_non_null(ptr: NonNull<T>) -> Box<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Constructs a box from a NonNull pointer.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same NonNull pointer.

    \n

    The non-null pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull\npointer using Box::into_non_null:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(5);\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{alloc, Layout};\nuse std::ptr::NonNull;\n\nunsafe {\n    let non_null = NonNull::new(alloc(Layout::new::<i32>()).cast::<i32>())\n        .expect(\"allocation failed\");\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null(non_null);\n}
    \n
    1.4.0 · Source

    pub fn into_raw(b: Box<T>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    Source

    pub fn into_non_null(b: Box<T>) -> NonNull<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Consumes the Box, returning a wrapped NonNull pointer.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null(b) instead of b.into_non_null().\nThis is so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with Box::from_non_null\nfor automatic cleanup:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{dealloc, Layout};\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    non_null.drop_in_place();\n    dealloc(non_null.as_ptr().cast::<u8>(), Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    drop(Box::from_non_null(non_null));\n}
    \n
    ",0,"db_core::errors::BoxDynError"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    Source

    pub unsafe fn from_non_null_in(raw: NonNull<T>, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a NonNull pointer in the given allocator.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The non-null pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull pointer\nusing Box::into_non_null_with_allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let non_null = System.allocate(Layout::new::<i32>())?.cast::<i32>();\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null_in(non_null, System);\n}
    \n
    Source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    Source

    pub fn into_non_null_with_allocator(b: Box<T, A>) -> (NonNull<T>, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped NonNull pointer and the allocator.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null_in function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null_with_allocator(b) instead of\nb.into_non_null_with_allocator(). This is so that there is no\nconflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with\nBox::from_non_null_in for automatic cleanup:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nunsafe {\n    non_null.drop_in_place();\n    alloc.deallocate(non_null.cast::<u8>(), Layout::new::<String>());\n}
    \n
    Source

    pub fn as_mut_ptr(b: &mut Box<T, A>) -> *mut T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw mutable pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the memory\nmay still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut b = Box::new(0);\n    let ptr1 = Box::as_mut_ptr(&mut b);\n    ptr1.write(1);\n    let ptr2 = Box::as_mut_ptr(&mut b);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    Source

    pub fn as_ptr(b: &Box<T, A>) -> *const T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the Box, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the memory,\nas well as writing to this memory, may still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut v = Box::new(0);\n    let ptr1 = Box::as_ptr(&v);\n    let ptr2 = Box::as_mut_ptr(&mut v);\n    let _val = ptr2.read();\n    // No write to this memory has happened yet, so `ptr1` is still valid.\n    let _val = ptr1.read();\n    // However, once we do a write...\n    ptr2.write(1);\n    // ... `ptr1` is no longer valid.\n    // This would be UB: let _val = ptr1.read();\n}
    \n
    Source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · Source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T.

    \n

    Note that the type T must outlive the chosen lifetime 'a. If the type\nhas only static references, or none at all, then this may be chosen to be\n'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 · Source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"db_core::errors::BoxDynError"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    Source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    Source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    Source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    Source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    Source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    Source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    Source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"db_core::errors::BoxDynError"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return a shorter slice (this\nallows non-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","db_core::errors::BoxDynError"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    Source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data, via Read methods, if empty. Read more
    Source§

    fn consume(&mut self, amt: usize)

    Marks the given amount of additional bytes from the internal buffer as having been read.\nSubsequent calls to read only return bytes that have not been marked as read. Read more
    Source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Checks if there is any data left to be read. Read more
    Source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes into buf until the delimiter byte or EOF is reached. Read more
    Source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    Skips all bytes until the delimiter byte or EOF is reached. Read more
    Source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    1.0.0 · Source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · Source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","db_core::errors::BoxDynError"],["
    §

    impl<T> BufferProvider for Box<T>
    where\n T: BufferProvider + ?Sized,

    §

    fn load_buffer(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<BufferMarker>, DataError>

    Loads a [DataPayload]<[BufferMarker]> according to the key and request.
    ","BufferProvider","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    Source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    Source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","db_core::errors::BoxDynError"],["
    Source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    Source§

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    Source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R,\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","db_core::errors::BoxDynError"],["
    §

    impl<M, P> DataProvider<M> for Box<P>
    where\n M: KeyedDataMarker,\n P: DataProvider<M> + ?Sized,

    §

    fn load(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DataProvider","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T> Default for Box<T>
    where\n T: Default,

    Source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    type Target = T

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","db_core::errors::BoxDynError"],["
    Source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    Source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    Source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    Source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · Source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · Source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · Source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","db_core::errors::BoxDynError"],["
    §

    impl<M, P> DynamicDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: DynamicDataProvider<M> + ?Sized,

    §

    fn load_data(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DynamicDataProvider","db_core::errors::BoxDynError"],["
    §

    impl<T> EncodeAsVarULE<T> for Box<T>
    where\n T: VarULE + ?Sized,

    §

    fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R

    Calls cb with a piecewise list of byte slices that when concatenated\nproduce the memory pattern of the corresponding instance of T. Read more
    §

    fn encode_var_ule_len(&self) -> usize

    Return the length, in bytes, of the corresponding [VarULE] type
    §

    fn encode_var_ule_write(&self, dst: &mut [u8])

    Write the corresponding [VarULE] type to the dst buffer. dst should\nbe the size of [Self::encode_var_ule_len()]
    ","EncodeAsVarULE","db_core::errors::BoxDynError"],["
    1.8.0 · Source§

    impl<E> Error for Box<E>
    where\n E: Error,

    Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    Source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    ","Error","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    Source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    Source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","db_core::errors::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call(\n &self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","db_core::errors::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","db_core::errors::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    Source§

    extern "rust-call" fn call_once(\n self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","db_core::errors::BoxDynError"],["
    1.6.0 · Source§

    impl<'a> From<&str> for Box<dyn Error + 'a>

    Source§

    fn from(err: &str) -> Box<dyn Error + 'a>

    Converts a str into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error>::from(a_str_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<'a> From<&str> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: &str) -> Box<dyn Error + Sync + Send + 'a>

    Converts a str into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_str_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_core::errors::BoxDynError"],["
    1.22.0 · Source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + 'a>

    Source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + 'a>

    Converts a Cow into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error>::from(a_cow_str_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From>","db_core::errors::BoxDynError"],["
    1.22.0 · Source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + Sync + Send + 'a>

    Converts a Cow into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_cow_str_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From>","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<'a, E> From<E> for Box<dyn Error + 'a>
    where\n E: Error + 'a,

    Source§

    fn from(err: E) -> Box<dyn Error + 'a>

    Converts a type of Error into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nlet an_error = AnError;\nassert!(0 == size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error>::from(an_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<'a, E> From<E> for Box<dyn Error + Sync + Send + 'a>
    where\n E: Error + Send + Sync + 'a,

    Source§

    fn from(err: E) -> Box<dyn Error + Sync + Send + 'a>

    Converts a type of Error + Send + Sync into a box of\ndyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nunsafe impl Send for AnError {}\n\nunsafe impl Sync for AnError {}\n\nlet an_error = AnError;\nassert!(0 == size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(an_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.6.0 · Source§

    impl<'a> From<String> for Box<dyn Error + 'a>

    Source§

    fn from(str_err: String) -> Box<dyn Error + 'a>

    Converts a String into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error>::from(a_string_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<'a> From<String> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: String) -> Box<dyn Error + Sync + Send + 'a>

    Converts a String into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_string_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_core::errors::BoxDynError"],["
    1.6.0 · Source§

    impl<T> From<T> for Box<T>

    Source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","db_core::errors::BoxDynError"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","db_core::errors::BoxDynError"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","db_core::errors::BoxDynError"],["
    1.36.0 · Source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as Future>::Output

    The type of value produced on completion.
    Source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>,\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempts to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    Source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_core::errors::BoxDynError"],["
    1.22.0 · Source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    Source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    Source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    Source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    Source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    Source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    Source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    Source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    Source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    Source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    Source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    Source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    Source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    Source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    Source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    Source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    Source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    Source§

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    Source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    Source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    Source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    Source§

    fn next_chunk<const N: usize>(\n &mut self,\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · Source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    Source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · Source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · Source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · Source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    Source§

    fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
    where\n Self: Sized,\n Self::Item: Clone,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places a copy of separator between adjacent\nitems of the original iterator. Read more
    Source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · Source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · Source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · Source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · Source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · Source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · Source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · Source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · Source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · Source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · Source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · Source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · Source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · Source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    1.29.0 · Source§

    fn flatten(self) -> Flatten<Self>
    where\n Self: Sized,\n Self::Item: IntoIterator,

    Creates an iterator that flattens nested structure. Read more
    Source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · Source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · Source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Iterator. Read more
    1.0.0 · Source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    Source§

    fn try_collect<B>(\n &mut self,\n) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
    where\n Self: Sized,\n Self::Item: Try,\n <Self::Item as Try>::Residual: Residual<B>,\n B: FromIterator<<Self::Item as Try>::Output>,

    🔬This is a nightly-only experimental API. (iterator_try_collect)
    Fallibly transforms an iterator into a collection, short circuiting if\na failure is encountered. Read more
    Source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · Source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    Source§

    fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
    where\n T: 'a,\n Self: Sized + DoubleEndedIterator<Item = &'a mut T>,\n P: FnMut(&T) -> bool,

    🔬This is a nightly-only experimental API. (iter_partition_in_place)
    Reorders the elements of this iterator in-place according to the given predicate,\nsuch that all those that return true precede all those that return false.\nReturns the number of true elements found. Read more
    Source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · Source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · Source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · Source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · Source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    Source§

    fn try_reduce<R>(\n &mut self,\n f: impl FnMut(Self::Item, Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · Source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · Source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    Source§

    fn try_find<R>(\n &mut self,\n f: impl FnMut(&Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · Source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.0.0 · Source§

    fn rposition<P>(&mut self, predicate: P) -> Option<usize>
    where\n P: FnMut(Self::Item) -> bool,\n Self: Sized + ExactSizeIterator + DoubleEndedIterator,

    Searches for an element in an iterator from the right, returning its\nindex. Read more
    1.0.0 · Source§

    fn max(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the maximum element of an iterator. Read more
    1.0.0 · Source§

    fn min(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the minimum element of an iterator. Read more
    1.6.0 · Source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · Source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · Source§

    fn rev(self) -> Rev<Self>
    where\n Self: Sized + DoubleEndedIterator,

    Reverses an iterator’s direction. Read more
    1.0.0 · Source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · Source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: Copy + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · Source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: Clone + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    1.0.0 · Source§

    fn cycle(self) -> Cycle<Self>
    where\n Self: Sized + Clone,

    Repeats an iterator endlessly. Read more
    Source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · Source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · Source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    1.5.0 · Source§

    fn cmp<I>(self, other: I) -> Ordering
    where\n I: IntoIterator<Item = Self::Item>,\n Self::Item: Ord,\n Self: Sized,

    Lexicographically compares the elements of this Iterator with those\nof another. Read more
    Source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    Source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    Source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · Source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · Source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · Source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · Source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · Source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    1.82.0 · Source§

    fn is_sorted(self) -> bool
    where\n Self: Sized,\n Self::Item: PartialOrd,

    Checks if the elements of this iterator are sorted. Read more
    1.82.0 · Source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    1.82.0 · Source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","db_core::errors::BoxDynError"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>,\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","db_core::errors::BoxDynError"],["
    Source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    Source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    Source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    Source§

    fn flush(&self)

    Flushes any buffered records. Read more
    ","Log","db_core::errors::BoxDynError"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    Source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","db_core::errors::BoxDynError"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input,\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Sized + Parser<Input>,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input,\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Sized + Parser<Input>,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<'a, 's, M>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState,\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Sized + Parser<Input>,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self,\n) -> Box<dyn Parser<Input, PartialState = Self::PartialState, Output = Self::Output> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    Source§

    fn eq(&self, other: &Box<T, A>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    Source§

    fn ne(&self, other: &Box<T, A>) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    Source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    Source§

    fn lt(&self, other: &Box<T, A>) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    Source§

    fn le(&self, other: &Box<T, A>) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    Source§

    fn ge(&self, other: &Box<T, A>) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    Source§

    fn gt(&self, other: &Box<T, A>) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    ","PartialOrd","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Pointer","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    Source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    Source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    Source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    Source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    Source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes until EOF in this source, placing them into buf. Read more
    Source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until EOF in this source, appending them to buf. Read more
    Source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Reads the exact number of bytes required to fill buf. Read more
    Source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Reads the exact number of bytes required to fill cursor. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · Source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · Source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · Source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","db_core::errors::BoxDynError"],["
    Source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    Source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    Source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    Source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    Source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    Source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    Source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    Source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    Source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    Source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    Seeks relative to the current position. Read more
    ","Seek","db_core::errors::BoxDynError"],["
    Source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_core::errors::BoxDynError"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item,\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","db_core::errors::BoxDynError"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","db_core::errors::BoxDynError"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","db_core::errors::BoxDynError"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","db_core::errors::BoxDynError"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    Source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Writes a buffer into this writer, returning how many bytes were written. Read more
    Source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    Source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    Source§

    fn flush(&mut self) -> Result<(), Error>

    Flushes this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    Source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    Source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    Source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","db_core::errors::BoxDynError"],["
    §

    impl<'a, T> Writeable for Box<T>
    where\n T: Writeable + ?Sized,

    §

    fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: Write + ?Sized,

    Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
    §

    fn write_to_parts<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: PartsWrite + ?Sized,

    Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn write_to_string(&self) -> Cow<'_, str>

    Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
    ","Writeable","db_core::errors::BoxDynError"],["
    §

    impl<T> CartablePointerLike for Box<T>

    ","CartablePointerLike","db_core::errors::BoxDynError"],["
    Source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","db_core::errors::BoxDynError"],["
    Source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","db_core::errors::BoxDynError"],["
    Source§

    impl<T, A> DerefPure for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","DerefPure","db_core::errors::BoxDynError"],["
    Source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","db_core::errors::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","db_core::errors::BoxDynError"],["
    1.26.0 · Source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","db_core::errors::BoxDynError"],["
    Source§

    impl<T, A> PinCoerceUnsized for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","PinCoerceUnsized","db_core::errors::BoxDynError"],["
    §

    impl<T> StableDeref for Box<T>
    where\n T: ?Sized,

    ","StableDeref","db_core::errors::BoxDynError"],["
    1.33.0 · Source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","db_core::errors::BoxDynError"]]],["db_sqlx_maria",[["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value produced on completion.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>,\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AnyProvider for Box<T>
    where\n T: AnyProvider + ?Sized,

    §

    fn load_any(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<AnyResponse, DataError>

    Loads an [AnyPayload] according to the key and request.
    ","AnyProvider","db_sqlx_maria::dev::BoxDynError"],["
    1.64.0 · Source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd + ?Sized,

    Source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","db_sqlx_maria::dev::BoxDynError"],["
    1.5.0 · Source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","db_sqlx_maria::dev::BoxDynError"],["
    1.63.0 · Source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    Source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","db_sqlx_maria::dev::BoxDynError"],["
    1.5.0 · Source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_maria::dev::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn async_call(\n &self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFn, returning a future which may borrow from the called closure.
    ","AsyncFn","db_sqlx_maria::dev::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    type CallRefFuture<'a> = <F as AsyncFnMut<Args>>::CallRefFuture<'a>\nwhere\n Box<F, A>: 'a

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Source§

    extern "rust-call" fn async_call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnMut, returning a future which may borrow from the called closure.
    ","AsyncFnMut","db_sqlx_maria::dev::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as AsyncFnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Output type of the called closure’s future.
    Source§

    type CallOnceFuture = <F as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Future returned by AsyncFnOnce::async_call_once.
    Source§

    extern "rust-call" fn async_call_once(\n self,\n args: Args,\n) -> <Box<F, A> as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnOnce, returning a future which may move out of the called closure.
    ","AsyncFnOnce","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    Source§

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    Source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempts to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom,\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","db_sqlx_maria::dev::BoxDynError"],["
    1.1.0 · Source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","db_sqlx_maria::dev::BoxDynError"],["
    1.1.0 · Source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<M, P> BoundDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: BoundDataProvider<M> + ?Sized,

    §

    fn load_bound(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    §

    fn bound_key(&self) -> DataKey

    Returns the [DataKey] that this provider uses for loading data.
    ","BoundDataProvider","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T> Box<T>

    1.0.0 · Source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    1.82.0 · Source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    let mut five = Box::<u32>::new_uninit();\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_zeroed_alloc)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_zeroed_alloc)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · Source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    Source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    Source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · Source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    Source

    pub unsafe fn from_non_null(ptr: NonNull<T>) -> Box<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Constructs a box from a NonNull pointer.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same NonNull pointer.

    \n

    The non-null pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull\npointer using Box::into_non_null:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(5);\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{alloc, Layout};\nuse std::ptr::NonNull;\n\nunsafe {\n    let non_null = NonNull::new(alloc(Layout::new::<i32>()).cast::<i32>())\n        .expect(\"allocation failed\");\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null(non_null);\n}
    \n
    1.4.0 · Source

    pub fn into_raw(b: Box<T>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    Source

    pub fn into_non_null(b: Box<T>) -> NonNull<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Consumes the Box, returning a wrapped NonNull pointer.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null(b) instead of b.into_non_null().\nThis is so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with Box::from_non_null\nfor automatic cleanup:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{dealloc, Layout};\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    non_null.drop_in_place();\n    dealloc(non_null.as_ptr().cast::<u8>(), Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    drop(Box::from_non_null(non_null));\n}
    \n
    ",0,"db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    Source

    pub unsafe fn from_non_null_in(raw: NonNull<T>, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a NonNull pointer in the given allocator.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The non-null pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull pointer\nusing Box::into_non_null_with_allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let non_null = System.allocate(Layout::new::<i32>())?.cast::<i32>();\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null_in(non_null, System);\n}
    \n
    Source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    Source

    pub fn into_non_null_with_allocator(b: Box<T, A>) -> (NonNull<T>, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped NonNull pointer and the allocator.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null_in function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null_with_allocator(b) instead of\nb.into_non_null_with_allocator(). This is so that there is no\nconflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with\nBox::from_non_null_in for automatic cleanup:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nunsafe {\n    non_null.drop_in_place();\n    alloc.deallocate(non_null.cast::<u8>(), Layout::new::<String>());\n}
    \n
    Source

    pub fn as_mut_ptr(b: &mut Box<T, A>) -> *mut T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw mutable pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the memory\nmay still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut b = Box::new(0);\n    let ptr1 = Box::as_mut_ptr(&mut b);\n    ptr1.write(1);\n    let ptr2 = Box::as_mut_ptr(&mut b);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    Source

    pub fn as_ptr(b: &Box<T, A>) -> *const T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the Box, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the memory,\nas well as writing to this memory, may still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut v = Box::new(0);\n    let ptr1 = Box::as_ptr(&v);\n    let ptr2 = Box::as_mut_ptr(&mut v);\n    let _val = ptr2.read();\n    // No write to this memory has happened yet, so `ptr1` is still valid.\n    let _val = ptr1.read();\n    // However, once we do a write...\n    ptr2.write(1);\n    // ... `ptr1` is no longer valid.\n    // This would be UB: let _val = ptr1.read();\n}
    \n
    Source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · Source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T.

    \n

    Note that the type T must outlive the chosen lifetime 'a. If the type\nhas only static references, or none at all, then this may be chosen to be\n'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 · Source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    Source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    Source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    Source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    Source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    Source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    Source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    Source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return a shorter slice (this\nallows non-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    Source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data, via Read methods, if empty. Read more
    Source§

    fn consume(&mut self, amt: usize)

    Marks the given amount of additional bytes from the internal buffer as having been read.\nSubsequent calls to read only return bytes that have not been marked as read. Read more
    Source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Checks if there is any data left to be read. Read more
    Source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes into buf until the delimiter byte or EOF is reached. Read more
    Source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    Skips all bytes until the delimiter byte or EOF is reached. Read more
    Source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    1.0.0 · Source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · Source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> BufferProvider for Box<T>
    where\n T: BufferProvider + ?Sized,

    §

    fn load_buffer(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<BufferMarker>, DataError>

    Loads a [DataPayload]<[BufferMarker]> according to the key and request.
    ","BufferProvider","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    Source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    Source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    Source§

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    Source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R,\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<M, P> DataProvider<M> for Box<P>
    where\n M: KeyedDataMarker,\n P: DataProvider<M> + ?Sized,

    §

    fn load(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DataProvider","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<'a, T> DecodeValue<'a> for Box<T>
    where\n T: DecodeValue<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<Box<T>, Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T> Default for Box<T>
    where\n T: Default,

    Source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    type Target = T

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    Source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    Source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    Source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · Source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · Source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · Source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<M, P> DynamicDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: DynamicDataProvider<M> + ?Sized,

    §

    fn load_data(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DynamicDataProvider","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> EncodeAsVarULE<T> for Box<T>
    where\n T: VarULE + ?Sized,

    §

    fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R

    Calls cb with a piecewise list of byte slices that when concatenated\nproduce the memory pattern of the corresponding instance of T. Read more
    §

    fn encode_var_ule_len(&self) -> usize

    Return the length, in bytes, of the corresponding [VarULE] type
    §

    fn encode_var_ule_write(&self, dst: &mut [u8])

    Write the corresponding [VarULE] type to the dst buffer. dst should\nbe the size of [Self::encode_var_ule_len()]
    ","EncodeAsVarULE","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> EncodeValue for Box<T>
    where\n T: EncodeValue,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    §

    fn header(&self) -> Result<Header, Error>
    where\n Self: Tagged,

    Get the [Header] used to encode this value.
    ","EncodeValue","db_sqlx_maria::dev::BoxDynError"],["
    1.8.0 · Source§

    impl<E> Error for Box<E>
    where\n E: Error,

    Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    Source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    ","Error","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    Source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    Source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","db_sqlx_maria::dev::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call(\n &self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","db_sqlx_maria::dev::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","db_sqlx_maria::dev::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    Source§

    extern "rust-call" fn call_once(\n self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","db_sqlx_maria::dev::BoxDynError"],["
    1.6.0 · Source§

    impl<'a> From<&str> for Box<dyn Error + 'a>

    Source§

    fn from(err: &str) -> Box<dyn Error + 'a>

    Converts a str into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error>::from(a_str_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a> From<&str> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: &str) -> Box<dyn Error + Sync + Send + 'a>

    Converts a str into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_str_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_maria::dev::BoxDynError"],["
    1.22.0 · Source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + 'a>

    Source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + 'a>

    Converts a Cow into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error>::from(a_cow_str_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_maria::dev::BoxDynError"],["
    1.22.0 · Source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + Sync + Send + 'a>

    Converts a Cow into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_cow_str_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a, E> From<E> for Box<dyn Error + 'a>
    where\n E: Error + 'a,

    Source§

    fn from(err: E) -> Box<dyn Error + 'a>

    Converts a type of Error into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nlet an_error = AnError;\nassert!(0 == size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error>::from(an_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a, E> From<E> for Box<dyn Error + Sync + Send + 'a>
    where\n E: Error + Send + Sync + 'a,

    Source§

    fn from(err: E) -> Box<dyn Error + Sync + Send + 'a>

    Converts a type of Error + Send + Sync into a box of\ndyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nunsafe impl Send for AnError {}\n\nunsafe impl Sync for AnError {}\n\nlet an_error = AnError;\nassert!(0 == size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(an_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::BoxDynError"],["
    1.6.0 · Source§

    impl<'a> From<String> for Box<dyn Error + 'a>

    Source§

    fn from(str_err: String) -> Box<dyn Error + 'a>

    Converts a String into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error>::from(a_string_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a> From<String> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: String) -> Box<dyn Error + Sync + Send + 'a>

    Converts a String into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_string_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_maria::dev::BoxDynError"],["
    1.6.0 · Source§

    impl<T> From<T> for Box<T>

    Source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","db_sqlx_maria::dev::BoxDynError"],["
    1.36.0 · Source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as Future>::Output

    The type of value produced on completion.
    Source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>,\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempts to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    Source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_maria::dev::BoxDynError"],["
    1.22.0 · Source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    Source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    Source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    Source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    Source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    Source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    Source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    Source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    Source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    Source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    Source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    Source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    Source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    Source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    Source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    Source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    Source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    Source§

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    Source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    Source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    Source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    Source§

    fn next_chunk<const N: usize>(\n &mut self,\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · Source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    Source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · Source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · Source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · Source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    Source§

    fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
    where\n Self: Sized,\n Self::Item: Clone,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places a copy of separator between adjacent\nitems of the original iterator. Read more
    Source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · Source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · Source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · Source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · Source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · Source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · Source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · Source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · Source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · Source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · Source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · Source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · Source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · Source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    1.29.0 · Source§

    fn flatten(self) -> Flatten<Self>
    where\n Self: Sized,\n Self::Item: IntoIterator,

    Creates an iterator that flattens nested structure. Read more
    Source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · Source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · Source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Iterator. Read more
    1.0.0 · Source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    Source§

    fn try_collect<B>(\n &mut self,\n) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
    where\n Self: Sized,\n Self::Item: Try,\n <Self::Item as Try>::Residual: Residual<B>,\n B: FromIterator<<Self::Item as Try>::Output>,

    🔬This is a nightly-only experimental API. (iterator_try_collect)
    Fallibly transforms an iterator into a collection, short circuiting if\na failure is encountered. Read more
    Source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · Source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    Source§

    fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
    where\n T: 'a,\n Self: Sized + DoubleEndedIterator<Item = &'a mut T>,\n P: FnMut(&T) -> bool,

    🔬This is a nightly-only experimental API. (iter_partition_in_place)
    Reorders the elements of this iterator in-place according to the given predicate,\nsuch that all those that return true precede all those that return false.\nReturns the number of true elements found. Read more
    Source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · Source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · Source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · Source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · Source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    Source§

    fn try_reduce<R>(\n &mut self,\n f: impl FnMut(Self::Item, Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · Source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · Source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    Source§

    fn try_find<R>(\n &mut self,\n f: impl FnMut(&Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · Source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.0.0 · Source§

    fn rposition<P>(&mut self, predicate: P) -> Option<usize>
    where\n P: FnMut(Self::Item) -> bool,\n Self: Sized + ExactSizeIterator + DoubleEndedIterator,

    Searches for an element in an iterator from the right, returning its\nindex. Read more
    1.0.0 · Source§

    fn max(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the maximum element of an iterator. Read more
    1.0.0 · Source§

    fn min(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the minimum element of an iterator. Read more
    1.6.0 · Source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · Source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · Source§

    fn rev(self) -> Rev<Self>
    where\n Self: Sized + DoubleEndedIterator,

    Reverses an iterator’s direction. Read more
    1.0.0 · Source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · Source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: Copy + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · Source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: Clone + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    1.0.0 · Source§

    fn cycle(self) -> Cycle<Self>
    where\n Self: Sized + Clone,

    Repeats an iterator endlessly. Read more
    Source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · Source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · Source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    1.5.0 · Source§

    fn cmp<I>(self, other: I) -> Ordering
    where\n I: IntoIterator<Item = Self::Item>,\n Self::Item: Ord,\n Self: Sized,

    Lexicographically compares the elements of this Iterator with those\nof another. Read more
    Source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    Source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    Source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · Source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · Source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · Source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · Source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · Source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    1.82.0 · Source§

    fn is_sorted(self) -> bool
    where\n Self: Sized,\n Self::Item: PartialOrd,

    Checks if the elements of this iterator are sorted. Read more
    1.82.0 · Source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    1.82.0 · Source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>,\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    Source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    Source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    Source§

    fn flush(&self)

    Flushes any buffered records. Read more
    ","Log","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    Source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input,\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Sized + Parser<Input>,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input,\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Sized + Parser<Input>,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<'a, 's, M>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState,\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Sized + Parser<Input>,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self,\n) -> Box<dyn Parser<Input, PartialState = Self::PartialState, Output = Self::Output> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    Source§

    fn eq(&self, other: &Box<T, A>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    Source§

    fn ne(&self, other: &Box<T, A>) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    Source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    Source§

    fn lt(&self, other: &Box<T, A>) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    Source§

    fn le(&self, other: &Box<T, A>) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    Source§

    fn ge(&self, other: &Box<T, A>) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    Source§

    fn gt(&self, other: &Box<T, A>) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    ","PartialOrd","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Pointer","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    Source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    Source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    Source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    Source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    Source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes until EOF in this source, placing them into buf. Read more
    Source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until EOF in this source, appending them to buf. Read more
    Source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Reads the exact number of bytes required to fill buf. Read more
    Source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Reads the exact number of bytes required to fill cursor. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · Source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · Source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · Source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    Source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    Source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    Source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    Source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    Source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    Source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    Source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    Source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    Source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    Seeks relative to the current position. Read more
    ","Seek","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item,\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<S> Socket for Box<S>
    where\n S: Socket + ?Sized,

    §

    fn try_read(&mut self, buf: &mut dyn ReadBuf) -> Result<usize, Error>

    §

    fn try_write(&mut self, buf: &[u8]) -> Result<usize, Error>

    §

    fn poll_read_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_write_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_shutdown(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn read<'a, B>(&'a mut self, buf: &'a mut B) -> Read<'a, Self, B>
    where\n B: ReadBuf,\n Self: Sized,

    §

    fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>
    where\n Self: Sized,

    §

    fn flush(&mut self) -> Flush<'_, Self>
    where\n Self: Sized,

    §

    fn shutdown(&mut self) -> Shutdown<'_, Self>
    where\n Self: Sized,

    ","Socket","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<S> Subscriber for Box<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> Value for Box<T>
    where\n T: Value + ?Sized,

    §

    fn record(&self, key: &Field, visitor: &mut dyn Visit)

    Visits this value with the given Visitor.
    ","Value","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    Source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Writes a buffer into this writer, returning how many bytes were written. Read more
    Source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    Source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    Source§

    fn flush(&mut self) -> Result<(), Error>

    Flushes this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    Source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    Source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    Source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<'a, T> Writeable for Box<T>
    where\n T: Writeable + ?Sized,

    §

    fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: Write + ?Sized,

    Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
    §

    fn write_to_parts<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: PartsWrite + ?Sized,

    Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn write_to_string(&self) -> Cow<'_, str>

    Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
    ","Writeable","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> CartablePointerLike for Box<T>

    ","CartablePointerLike","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T, A> DerefPure for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","DerefPure","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","db_sqlx_maria::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","db_sqlx_maria::dev::BoxDynError"],["
    1.26.0 · Source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","db_sqlx_maria::dev::BoxDynError"],["
    Source§

    impl<T, A> PinCoerceUnsized for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","PinCoerceUnsized","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<'a, T> Sequence<'a> for Box<T>
    where\n T: Sequence<'a>,

    ","Sequence<'a>","db_sqlx_maria::dev::BoxDynError"],["
    §

    impl<T> StableDeref for Box<T>
    where\n T: ?Sized,

    ","StableDeref","db_sqlx_maria::dev::BoxDynError"],["
    1.33.0 · Source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","db_sqlx_maria::dev::BoxDynError"]]],["db_sqlx_postgres",[["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value produced on completion.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>,\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AnyProvider for Box<T>
    where\n T: AnyProvider + ?Sized,

    §

    fn load_any(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<AnyResponse, DataError>

    Loads an [AnyPayload] according to the key and request.
    ","AnyProvider","db_sqlx_postgres::dev::BoxDynError"],["
    1.64.0 · Source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd + ?Sized,

    Source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","db_sqlx_postgres::dev::BoxDynError"],["
    1.5.0 · Source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","db_sqlx_postgres::dev::BoxDynError"],["
    1.63.0 · Source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    Source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","db_sqlx_postgres::dev::BoxDynError"],["
    1.5.0 · Source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","db_sqlx_postgres::dev::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn async_call(\n &self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFn, returning a future which may borrow from the called closure.
    ","AsyncFn","db_sqlx_postgres::dev::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    type CallRefFuture<'a> = <F as AsyncFnMut<Args>>::CallRefFuture<'a>\nwhere\n Box<F, A>: 'a

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Source§

    extern "rust-call" fn async_call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnMut, returning a future which may borrow from the called closure.
    ","AsyncFnMut","db_sqlx_postgres::dev::BoxDynError"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as AsyncFnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Output type of the called closure’s future.
    Source§

    type CallOnceFuture = <F as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Future returned by AsyncFnOnce::async_call_once.
    Source§

    extern "rust-call" fn async_call_once(\n self,\n args: Args,\n) -> <Box<F, A> as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnOnce, returning a future which may move out of the called closure.
    ","AsyncFnOnce","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    Source§

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    Source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempts to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom,\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","db_sqlx_postgres::dev::BoxDynError"],["
    1.1.0 · Source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","db_sqlx_postgres::dev::BoxDynError"],["
    1.1.0 · Source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<M, P> BoundDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: BoundDataProvider<M> + ?Sized,

    §

    fn load_bound(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    §

    fn bound_key(&self) -> DataKey

    Returns the [DataKey] that this provider uses for loading data.
    ","BoundDataProvider","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T> Box<T>

    1.0.0 · Source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    1.82.0 · Source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    let mut five = Box::<u32>::new_uninit();\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_zeroed_alloc)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_zeroed_alloc)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · Source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    Source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    Source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · Source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    Source

    pub unsafe fn from_non_null(ptr: NonNull<T>) -> Box<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Constructs a box from a NonNull pointer.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same NonNull pointer.

    \n

    The non-null pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull\npointer using Box::into_non_null:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(5);\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{alloc, Layout};\nuse std::ptr::NonNull;\n\nunsafe {\n    let non_null = NonNull::new(alloc(Layout::new::<i32>()).cast::<i32>())\n        .expect(\"allocation failed\");\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null(non_null);\n}
    \n
    1.4.0 · Source

    pub fn into_raw(b: Box<T>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    Source

    pub fn into_non_null(b: Box<T>) -> NonNull<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Consumes the Box, returning a wrapped NonNull pointer.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null(b) instead of b.into_non_null().\nThis is so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with Box::from_non_null\nfor automatic cleanup:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{dealloc, Layout};\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    non_null.drop_in_place();\n    dealloc(non_null.as_ptr().cast::<u8>(), Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    drop(Box::from_non_null(non_null));\n}
    \n
    ",0,"db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    Source

    pub unsafe fn from_non_null_in(raw: NonNull<T>, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a NonNull pointer in the given allocator.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The non-null pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull pointer\nusing Box::into_non_null_with_allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let non_null = System.allocate(Layout::new::<i32>())?.cast::<i32>();\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null_in(non_null, System);\n}
    \n
    Source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    Source

    pub fn into_non_null_with_allocator(b: Box<T, A>) -> (NonNull<T>, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped NonNull pointer and the allocator.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null_in function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null_with_allocator(b) instead of\nb.into_non_null_with_allocator(). This is so that there is no\nconflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with\nBox::from_non_null_in for automatic cleanup:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nunsafe {\n    non_null.drop_in_place();\n    alloc.deallocate(non_null.cast::<u8>(), Layout::new::<String>());\n}
    \n
    Source

    pub fn as_mut_ptr(b: &mut Box<T, A>) -> *mut T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw mutable pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the memory\nmay still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut b = Box::new(0);\n    let ptr1 = Box::as_mut_ptr(&mut b);\n    ptr1.write(1);\n    let ptr2 = Box::as_mut_ptr(&mut b);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    Source

    pub fn as_ptr(b: &Box<T, A>) -> *const T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the Box, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the memory,\nas well as writing to this memory, may still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut v = Box::new(0);\n    let ptr1 = Box::as_ptr(&v);\n    let ptr2 = Box::as_mut_ptr(&mut v);\n    let _val = ptr2.read();\n    // No write to this memory has happened yet, so `ptr1` is still valid.\n    let _val = ptr1.read();\n    // However, once we do a write...\n    ptr2.write(1);\n    // ... `ptr1` is no longer valid.\n    // This would be UB: let _val = ptr1.read();\n}
    \n
    Source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · Source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T.

    \n

    Note that the type T must outlive the chosen lifetime 'a. If the type\nhas only static references, or none at all, then this may be chosen to be\n'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 · Source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    Source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    Source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    Source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    Source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    Source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    Source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    Source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return a shorter slice (this\nallows non-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    Source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data, via Read methods, if empty. Read more
    Source§

    fn consume(&mut self, amt: usize)

    Marks the given amount of additional bytes from the internal buffer as having been read.\nSubsequent calls to read only return bytes that have not been marked as read. Read more
    Source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Checks if there is any data left to be read. Read more
    Source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes into buf until the delimiter byte or EOF is reached. Read more
    Source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    Skips all bytes until the delimiter byte or EOF is reached. Read more
    Source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    1.0.0 · Source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · Source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> BufferProvider for Box<T>
    where\n T: BufferProvider + ?Sized,

    §

    fn load_buffer(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<BufferMarker>, DataError>

    Loads a [DataPayload]<[BufferMarker]> according to the key and request.
    ","BufferProvider","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    Source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    Source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    Source§

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    Source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R,\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<M, P> DataProvider<M> for Box<P>
    where\n M: KeyedDataMarker,\n P: DataProvider<M> + ?Sized,

    §

    fn load(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DataProvider","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<'a, T> DecodeValue<'a> for Box<T>
    where\n T: DecodeValue<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<Box<T>, Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T> Default for Box<T>
    where\n T: Default,

    Source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    type Target = T

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    Source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    Source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    Source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · Source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · Source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · Source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<M, P> DynamicDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: DynamicDataProvider<M> + ?Sized,

    §

    fn load_data(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DynamicDataProvider","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> EncodeAsVarULE<T> for Box<T>
    where\n T: VarULE + ?Sized,

    §

    fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R

    Calls cb with a piecewise list of byte slices that when concatenated\nproduce the memory pattern of the corresponding instance of T. Read more
    §

    fn encode_var_ule_len(&self) -> usize

    Return the length, in bytes, of the corresponding [VarULE] type
    §

    fn encode_var_ule_write(&self, dst: &mut [u8])

    Write the corresponding [VarULE] type to the dst buffer. dst should\nbe the size of [Self::encode_var_ule_len()]
    ","EncodeAsVarULE","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> EncodeValue for Box<T>
    where\n T: EncodeValue,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    §

    fn header(&self) -> Result<Header, Error>
    where\n Self: Tagged,

    Get the [Header] used to encode this value.
    ","EncodeValue","db_sqlx_postgres::dev::BoxDynError"],["
    1.8.0 · Source§

    impl<E> Error for Box<E>
    where\n E: Error,

    Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    Source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    ","Error","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    Source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    Source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","db_sqlx_postgres::dev::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call(\n &self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","db_sqlx_postgres::dev::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","db_sqlx_postgres::dev::BoxDynError"],["
    1.35.0 · Source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    Source§

    extern "rust-call" fn call_once(\n self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","db_sqlx_postgres::dev::BoxDynError"],["
    1.6.0 · Source§

    impl<'a> From<&str> for Box<dyn Error + 'a>

    Source§

    fn from(err: &str) -> Box<dyn Error + 'a>

    Converts a str into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error>::from(a_str_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a> From<&str> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: &str) -> Box<dyn Error + Sync + Send + 'a>

    Converts a str into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_str_error = \"a str error\";\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_str_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From<&str>","db_sqlx_postgres::dev::BoxDynError"],["
    1.22.0 · Source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + 'a>

    Source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + 'a>

    Converts a Cow into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error>::from(a_cow_str_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_postgres::dev::BoxDynError"],["
    1.22.0 · Source§

    impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: Cow<'b, str>) -> Box<dyn Error + Sync + Send + 'a>

    Converts a Cow into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::borrow::Cow;\n\nlet a_cow_str_error = Cow::from(\"a str error\");\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_cow_str_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From>","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a, E> From<E> for Box<dyn Error + 'a>
    where\n E: Error + 'a,

    Source§

    fn from(err: E) -> Box<dyn Error + 'a>

    Converts a type of Error into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nlet an_error = AnError;\nassert!(0 == size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error>::from(an_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a, E> From<E> for Box<dyn Error + Sync + Send + 'a>
    where\n E: Error + Send + Sync + 'a,

    Source§

    fn from(err: E) -> Box<dyn Error + Sync + Send + 'a>

    Converts a type of Error + Send + Sync into a box of\ndyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\nuse std::fmt;\n\n#[derive(Debug)]\nstruct AnError;\n\nimpl fmt::Display for AnError {\n    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n        write!(f, \"An error\")\n    }\n}\n\nimpl Error for AnError {}\n\nunsafe impl Send for AnError {}\n\nunsafe impl Sync for AnError {}\n\nlet an_error = AnError;\nassert!(0 == size_of_val(&an_error));\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(an_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::BoxDynError"],["
    1.6.0 · Source§

    impl<'a> From<String> for Box<dyn Error + 'a>

    Source§

    fn from(str_err: String) -> Box<dyn Error + 'a>

    Converts a String into a box of dyn Error.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error>::from(a_string_error);\nassert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<'a> From<String> for Box<dyn Error + Sync + Send + 'a>

    Source§

    fn from(err: String) -> Box<dyn Error + Sync + Send + 'a>

    Converts a String into a box of dyn Error + Send + Sync.

    \n
    §Examples
    \n
    use std::error::Error;\n\nlet a_string_error = \"a string error\".to_string();\nlet a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_string_error);\nassert!(\n    size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
    \n
    ","From","db_sqlx_postgres::dev::BoxDynError"],["
    1.6.0 · Source§

    impl<T> From<T> for Box<T>

    Source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","db_sqlx_postgres::dev::BoxDynError"],["
    1.36.0 · Source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as Future>::Output

    The type of value produced on completion.
    Source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>,\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempts to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    Source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_postgres::dev::BoxDynError"],["
    1.22.0 · Source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    Source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    Source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    Source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    Source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    Source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    Source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    Source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    Source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    Source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    Source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    Source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    Source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    Source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    Source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    Source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    Source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    Source§

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    Source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    Source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    Source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    Source§

    fn next_chunk<const N: usize>(\n &mut self,\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · Source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    Source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · Source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · Source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · Source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    Source§

    fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
    where\n Self: Sized,\n Self::Item: Clone,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places a copy of separator between adjacent\nitems of the original iterator. Read more
    Source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · Source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · Source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · Source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · Source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · Source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · Source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · Source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · Source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · Source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · Source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · Source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · Source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · Source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    1.29.0 · Source§

    fn flatten(self) -> Flatten<Self>
    where\n Self: Sized,\n Self::Item: IntoIterator,

    Creates an iterator that flattens nested structure. Read more
    Source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · Source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · Source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Iterator. Read more
    1.0.0 · Source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    Source§

    fn try_collect<B>(\n &mut self,\n) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
    where\n Self: Sized,\n Self::Item: Try,\n <Self::Item as Try>::Residual: Residual<B>,\n B: FromIterator<<Self::Item as Try>::Output>,

    🔬This is a nightly-only experimental API. (iterator_try_collect)
    Fallibly transforms an iterator into a collection, short circuiting if\na failure is encountered. Read more
    Source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · Source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    Source§

    fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
    where\n T: 'a,\n Self: Sized + DoubleEndedIterator<Item = &'a mut T>,\n P: FnMut(&T) -> bool,

    🔬This is a nightly-only experimental API. (iter_partition_in_place)
    Reorders the elements of this iterator in-place according to the given predicate,\nsuch that all those that return true precede all those that return false.\nReturns the number of true elements found. Read more
    Source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · Source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · Source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · Source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · Source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    Source§

    fn try_reduce<R>(\n &mut self,\n f: impl FnMut(Self::Item, Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · Source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · Source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    Source§

    fn try_find<R>(\n &mut self,\n f: impl FnMut(&Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · Source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.0.0 · Source§

    fn rposition<P>(&mut self, predicate: P) -> Option<usize>
    where\n P: FnMut(Self::Item) -> bool,\n Self: Sized + ExactSizeIterator + DoubleEndedIterator,

    Searches for an element in an iterator from the right, returning its\nindex. Read more
    1.0.0 · Source§

    fn max(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the maximum element of an iterator. Read more
    1.0.0 · Source§

    fn min(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the minimum element of an iterator. Read more
    1.6.0 · Source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · Source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · Source§

    fn rev(self) -> Rev<Self>
    where\n Self: Sized + DoubleEndedIterator,

    Reverses an iterator’s direction. Read more
    1.0.0 · Source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · Source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: Copy + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · Source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: Clone + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    1.0.0 · Source§

    fn cycle(self) -> Cycle<Self>
    where\n Self: Sized + Clone,

    Repeats an iterator endlessly. Read more
    Source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · Source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · Source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    1.5.0 · Source§

    fn cmp<I>(self, other: I) -> Ordering
    where\n I: IntoIterator<Item = Self::Item>,\n Self::Item: Ord,\n Self: Sized,

    Lexicographically compares the elements of this Iterator with those\nof another. Read more
    Source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    Source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    Source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · Source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · Source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · Source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · Source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · Source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    1.82.0 · Source§

    fn is_sorted(self) -> bool
    where\n Self: Sized,\n Self::Item: PartialOrd,

    Checks if the elements of this iterator are sorted. Read more
    1.82.0 · Source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    1.82.0 · Source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>,\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    Source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    Source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    Source§

    fn flush(&self)

    Flushes any buffered records. Read more
    ","Log","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    Source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input,\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Sized + Parser<Input>,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input,\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Sized + Parser<Input>,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<'a, 's, M>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState,\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Sized + Parser<Input>,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self,\n) -> Box<dyn Parser<Input, PartialState = Self::PartialState, Output = Self::Output> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    Source§

    fn eq(&self, other: &Box<T, A>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    Source§

    fn ne(&self, other: &Box<T, A>) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    Source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    Source§

    fn lt(&self, other: &Box<T, A>) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    Source§

    fn le(&self, other: &Box<T, A>) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    Source§

    fn ge(&self, other: &Box<T, A>) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    Source§

    fn gt(&self, other: &Box<T, A>) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    ","PartialOrd","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Pointer","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    Source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    Source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    Source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    Source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    Source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes until EOF in this source, placing them into buf. Read more
    Source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until EOF in this source, appending them to buf. Read more
    Source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Reads the exact number of bytes required to fill buf. Read more
    Source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Reads the exact number of bytes required to fill cursor. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · Source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · Source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · Source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    Source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    Source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    Source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    Source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    Source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    Source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    Source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    Source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    Source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    Seeks relative to the current position. Read more
    ","Seek","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item,\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<S> Socket for Box<S>
    where\n S: Socket + ?Sized,

    §

    fn try_read(&mut self, buf: &mut dyn ReadBuf) -> Result<usize, Error>

    §

    fn try_write(&mut self, buf: &[u8]) -> Result<usize, Error>

    §

    fn poll_read_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_write_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_shutdown(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn read<'a, B>(&'a mut self, buf: &'a mut B) -> Read<'a, Self, B>
    where\n B: ReadBuf,\n Self: Sized,

    §

    fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>
    where\n Self: Sized,

    §

    fn flush(&mut self) -> Flush<'_, Self>
    where\n Self: Sized,

    §

    fn shutdown(&mut self) -> Shutdown<'_, Self>
    where\n Self: Sized,

    ","Socket","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<S> Subscriber for Box<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> Value for Box<T>
    where\n T: Value + ?Sized,

    §

    fn record(&self, key: &Field, visitor: &mut dyn Visit)

    Visits this value with the given Visitor.
    ","Value","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    Source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Writes a buffer into this writer, returning how many bytes were written. Read more
    Source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    Source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    Source§

    fn flush(&mut self) -> Result<(), Error>

    Flushes this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    Source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    Source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    Source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<'a, T> Writeable for Box<T>
    where\n T: Writeable + ?Sized,

    §

    fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: Write + ?Sized,

    Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
    §

    fn write_to_parts<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: PartsWrite + ?Sized,

    Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn write_to_string(&self) -> Cow<'_, str>

    Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
    ","Writeable","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> CartablePointerLike for Box<T>

    ","CartablePointerLike","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T, A> DerefPure for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","DerefPure","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","db_sqlx_postgres::dev::BoxDynError"],["
    1.0.0 · Source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","db_sqlx_postgres::dev::BoxDynError"],["
    1.26.0 · Source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","db_sqlx_postgres::dev::BoxDynError"],["
    Source§

    impl<T, A> PinCoerceUnsized for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","PinCoerceUnsized","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<'a, T> Sequence<'a> for Box<T>
    where\n T: Sequence<'a>,

    ","Sequence<'a>","db_sqlx_postgres::dev::BoxDynError"],["
    §

    impl<T> StableDeref for Box<T>
    where\n T: ?Sized,

    ","StableDeref","db_sqlx_postgres::dev::BoxDynError"],["
    1.33.0 · Source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","db_sqlx_postgres::dev::BoxDynError"]]],["mcaptcha",[["
    §

    impl<F, A> ActorFuture<A> for Box<F>
    where\n F: ActorFuture<A> + Unpin + ?Sized,\n A: Actor,

    §

    type Output = <F as ActorFuture<A>>::Output

    The type of value produced on completion.
    §

    fn poll(\n self: Pin<&mut Box<F>>,\n srv: &mut A,\n ctx: &mut <A as Actor>::Context,\n task: &mut Context<'_>,\n) -> Poll<<Box<F> as ActorFuture<A>>::Output>

    ","ActorFuture","mcaptcha::db::BoxDB"],["
    §

    impl<T> AnyProvider for Box<T>
    where\n T: AnyProvider + ?Sized,

    §

    fn load_any(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<AnyResponse, DataError>

    Loads an [AnyPayload] according to the key and request.
    ","AnyProvider","mcaptcha::db::BoxDB"],["
    1.64.0 · Source§

    impl<T> AsFd for Box<T>
    where\n T: AsFd + ?Sized,

    Source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","mcaptcha::db::BoxDB"],["
    1.5.0 · Source§

    impl<T, A> AsMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_mut(&mut self) -> &mut T

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut","mcaptcha::db::BoxDB"],["
    1.63.0 · Source§

    impl<T> AsRawFd for Box<T>
    where\n T: AsRawFd,

    Source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","mcaptcha::db::BoxDB"],["
    1.5.0 · Source§

    impl<T, A> AsRef<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempt to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncBufRead for Box<T>
    where\n T: AsyncBufRead + Unpin + ?Sized,

    §

    fn poll_fill_buf(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<&[u8], Error>>

    Attempts to return the contents of the internal buffer, filling it with more data\nfrom the inner reader if it is empty. Read more
    §

    fn consume(self: Pin<&mut Box<T>>, amt: usize)

    Tells this buffer that amt bytes have been consumed from the buffer,\nso they should no longer be returned in calls to poll_read. Read more
    ","AsyncBufRead","mcaptcha::db::BoxDB"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn async_call(\n &self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFn, returning a future which may borrow from the called closure.
    ","AsyncFn","mcaptcha::db::BoxDB"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    type CallRefFuture<'a> = <F as AsyncFnMut<Args>>::CallRefFuture<'a>\nwhere\n Box<F, A>: 'a

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Source§

    extern "rust-call" fn async_call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as AsyncFnMut<Args>>::CallRefFuture<'_>

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnMut, returning a future which may borrow from the called closure.
    ","AsyncFnMut","mcaptcha::db::BoxDB"],["
    1.85.0 · Source§

    impl<Args, F, A> AsyncFnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: AsyncFnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as AsyncFnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Output type of the called closure’s future.
    Source§

    type CallOnceFuture = <F as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Future returned by AsyncFnOnce::async_call_once.
    Source§

    extern "rust-call" fn async_call_once(\n self,\n args: Args,\n) -> <Box<F, A> as AsyncFnOnce<Args>>::CallOnceFuture

    🔬This is a nightly-only experimental API. (async_fn_traits)
    Call the AsyncFnOnce, returning a future which may move out of the called closure.
    ","AsyncFnOnce","mcaptcha::db::BoxDB"],["
    Source§

    impl<S> AsyncIterator for Box<S>
    where\n S: AsyncIterator + Unpin + ?Sized,

    Source§

    type Item = <S as AsyncIterator>::Item

    🔬This is a nightly-only experimental API. (async_iterator)
    The type of items yielded by the async iterator.
    Source§

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as AsyncIterator>::Item>>

    🔬This is a nightly-only experimental API. (async_iterator)
    Attempts to pull out the next value of this async iterator, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the async iterator is exhausted. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    🔬This is a nightly-only experimental API. (async_iterator)
    Returns the bounds on the remaining length of the async iterator. Read more
    ","AsyncIterator","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut ReadBuf<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to read from the AsyncRead into buf. Read more
    ","AsyncRead","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncRead for Box<T>
    where\n T: AsyncRead + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &mut [u8],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into buf. Read more
    §

    fn poll_read_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &mut [IoSliceMut<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to read from the AsyncRead into bufs using vectored\nIO operations. Read more
    ","AsyncRead","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn poll_seek(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n pos: SeekFrom,\n) -> Poll<Result<u64, Error>>

    Attempt to seek to an offset, in bytes, in a stream. Read more
    ","AsyncSeek","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncSeek for Box<T>
    where\n T: AsyncSeek + Unpin + ?Sized,

    §

    fn start_seek(self: Pin<&mut Box<T>>, pos: SeekFrom) -> Result<(), Error>

    Attempts to seek to an offset, in bytes, in a stream. Read more
    §

    fn poll_complete(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<u64, Error>>

    Waits for a seek operation to complete. Read more
    ","AsyncSeek","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from bufs into the object using vectored\nIO operations. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempt to close the object. Read more
    ","AsyncWrite","mcaptcha::db::BoxDB"],["
    §

    impl<T> AsyncWrite for Box<T>
    where\n T: AsyncWrite + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the object. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers. Read more
    §

    fn is_write_vectored(&self) -> bool

    Determines if this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to flush the object, ensuring that any buffered data reach\ntheir destination. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Initiates or attempts to shut down this writer, returning success when\nthe I/O connection has completely shut down. Read more
    ","AsyncWrite","mcaptcha::db::BoxDB"],["
    §

    impl<T> Body for Box<T>
    where\n T: Body + Unpin + ?Sized,

    §

    type Data = <T as Body>::Data

    Values yielded by the Body.
    §

    type Error = <T as Body>::Error

    The error type this Body might generate.
    §

    fn poll_frame(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<Result<Frame<<Box<T> as Body>::Data>, <Box<T> as Body>::Error>>>

    Attempt to pull out the next data buffer of this stream.
    §

    fn is_end_stream(&self) -> bool

    Returns true when the end of stream has been reached. Read more
    §

    fn size_hint(&self) -> SizeHint

    Returns the bounds on the remaining length of the stream. Read more
    ","Body","mcaptcha::db::BoxDB"],["
    1.1.0 · Source§

    impl<T, A> Borrow<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","mcaptcha::db::BoxDB"],["
    1.1.0 · Source§

    impl<T, A> BorrowMut<T> for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    ","BorrowMut","mcaptcha::db::BoxDB"],["
    §

    impl<M, P> BoundDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: BoundDataProvider<M> + ?Sized,

    §

    fn load_bound(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    §

    fn bound_key(&self) -> DataKey

    Returns the [DataKey] that this provider uses for loading data.
    ","BoundDataProvider","mcaptcha::db::BoxDB"],["
    Source§

    impl<T> Box<T>

    1.0.0 · Source

    pub fn new(x: T) -> Box<T>

    Allocates memory on the heap and then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    let five = Box::new(5);
    \n
    1.82.0 · Source

    pub fn new_uninit() -> Box<MaybeUninit<T>>

    Constructs a new box with uninitialized contents.

    \n
    §Examples
    \n
    let mut five = Box::<u32>::new_uninit();\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn new_zeroed() -> Box<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_zeroed_alloc)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_zeroed_alloc)]\n\nlet zero = Box::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · Source

    pub fn pin(x: T) -> Pin<Box<T>>

    Constructs a new Pin<Box<T>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin(x)\ndoes the same as Box::into_pin(Box::new(x)). Consider using\ninto_pin if you already have a Box<T>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new.

    \n
    Source

    pub fn try_new(x: T) -> Result<Box<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory on the heap then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet five = Box::try_new(5)?;
    \n
    Source

    pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents on the heap,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet mut five = Box::<u32>::try_new_uninit()?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes on the heap

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nlet zero = Box::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    Source§

    impl<T> Box<T>
    where\n T: ?Sized,

    1.4.0 · Source

    pub unsafe fn from_raw(raw: *mut T) -> Box<T>

    Constructs a box from a raw pointer.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw:

    \n\n
    let x = Box::new(5);\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    use std::alloc::{alloc, Layout};\n\nunsafe {\n    let ptr = alloc(Layout::new::<i32>()) as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw(ptr);\n}
    \n
    Source

    pub unsafe fn from_non_null(ptr: NonNull<T>) -> Box<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Constructs a box from a NonNull pointer.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same NonNull pointer.

    \n

    The non-null pointer must point to a block of memory allocated by the global allocator.

    \n

    The safety conditions are described in the memory layout section.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull\npointer using Box::into_non_null:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(5);\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manually create a Box from scratch by using the global allocator:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{alloc, Layout};\nuse std::ptr::NonNull;\n\nunsafe {\n    let non_null = NonNull::new(alloc(Layout::new::<i32>()).cast::<i32>())\n        .expect(\"allocation failed\");\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null(non_null);\n}
    \n
    1.4.0 · Source

    pub fn into_raw(b: Box<T>) -> *mut T

    Consumes the Box, returning a wrapped raw pointer.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw(b) instead of b.into_raw(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw\nfor automatic cleanup:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nlet x = unsafe { Box::from_raw(ptr) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    use std::alloc::{dealloc, Layout};\nuse std::ptr;\n\nlet x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    dealloc(ptr as *mut u8, Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    let x = Box::new(String::from(\"Hello\"));\nlet ptr = Box::into_raw(x);\nunsafe {\n    drop(Box::from_raw(ptr));\n}
    \n
    Source

    pub fn into_non_null(b: Box<T>) -> NonNull<T>

    🔬This is a nightly-only experimental API. (box_vec_non_null)

    Consumes the Box, returning a wrapped NonNull pointer.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null(b) instead of b.into_non_null().\nThis is so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with Box::from_non_null\nfor automatic cleanup:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nlet x = unsafe { Box::from_non_null(non_null) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(box_vec_non_null)]\n\nuse std::alloc::{dealloc, Layout};\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    non_null.drop_in_place();\n    dealloc(non_null.as_ptr().cast::<u8>(), Layout::new::<String>());\n}
    \n

    Note: This is equivalent to the following:

    \n\n
    #![feature(box_vec_non_null)]\n\nlet x = Box::new(String::from(\"Hello\"));\nlet non_null = Box::into_non_null(x);\nunsafe {\n    drop(Box::from_non_null(non_null));\n}
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source

    pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a raw pointer in the given allocator.

    \n

    After calling this function, the raw pointer is owned by the\nresulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The raw pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a raw pointer\nusing Box::into_raw_with_allocator:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let ptr = System.allocate(Layout::new::<i32>())?.as_mut_ptr() as *mut i32;\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `ptr`, though for this\n    // simple example `*ptr = 5` would have worked as well.\n    ptr.write(5);\n    let x = Box::from_raw_in(ptr, System);\n}
    \n
    Source

    pub unsafe fn from_non_null_in(raw: NonNull<T>, alloc: A) -> Box<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a box from a NonNull pointer in the given allocator.

    \n

    After calling this function, the NonNull pointer is owned by\nthe resulting Box. Specifically, the Box destructor will call\nthe destructor of T and free the allocated memory. For this\nto be safe, the memory must have been allocated in accordance\nwith the memory layout used by Box .

    \n
    §Safety
    \n

    This function is unsafe because improper use may lead to\nmemory problems. For example, a double-free may occur if the\nfunction is called twice on the same raw pointer.

    \n

    The non-null pointer must point to a block of memory allocated by alloc.

    \n
    §Examples
    \n

    Recreate a Box which was previously converted to a NonNull pointer\nusing Box::into_non_null_with_allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(5, System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manually create a Box from scratch by using the system allocator:

    \n\n
    #![feature(allocator_api, box_vec_non_null, slice_ptr_get)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nunsafe {\n    let non_null = System.allocate(Layout::new::<i32>())?.cast::<i32>();\n    // In general .write is required to avoid attempting to destruct\n    // the (uninitialized) previous contents of `non_null`.\n    non_null.write(5);\n    let x = Box::from_non_null_in(non_null, System);\n}
    \n
    Source

    pub fn into_raw_with_allocator(b: Box<T, A>) -> (*mut T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped raw pointer and the allocator.

    \n

    The pointer will be properly aligned and non-null.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the raw pointer back into a Box with the\nBox::from_raw_in function, allowing the Box destructor to perform\nthe cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_raw_with_allocator(b) instead of b.into_raw_with_allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the raw pointer back into a Box with Box::from_raw_in\nfor automatic cleanup:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nlet x = unsafe { Box::from_raw_in(ptr, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{Allocator, Layout, System};\nuse std::ptr::{self, NonNull};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (ptr, alloc) = Box::into_raw_with_allocator(x);\nunsafe {\n    ptr::drop_in_place(ptr);\n    let non_null = NonNull::new_unchecked(ptr);\n    alloc.deallocate(non_null.cast(), Layout::new::<String>());\n}
    \n
    Source

    pub fn into_non_null_with_allocator(b: Box<T, A>) -> (NonNull<T>, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Box, returning a wrapped NonNull pointer and the allocator.

    \n

    The pointer will be properly aligned.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Box. In particular, the\ncaller should properly destroy T and release the memory, taking\ninto account the memory layout used by Box. The easiest way to\ndo this is to convert the NonNull pointer back into a Box with the\nBox::from_non_null_in function, allowing the Box destructor to\nperform the cleanup.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::into_non_null_with_allocator(b) instead of\nb.into_non_null_with_allocator(). This is so that there is no\nconflict with a method on the inner type.

    \n
    §Examples
    \n

    Converting the NonNull pointer back into a Box with\nBox::from_non_null_in for automatic cleanup:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::System;\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nlet x = unsafe { Box::from_non_null_in(non_null, alloc) };
    \n

    Manual cleanup by explicitly running the destructor and deallocating\nthe memory:

    \n\n
    #![feature(allocator_api, box_vec_non_null)]\n\nuse std::alloc::{Allocator, Layout, System};\n\nlet x = Box::new_in(String::from(\"Hello\"), System);\nlet (non_null, alloc) = Box::into_non_null_with_allocator(x);\nunsafe {\n    non_null.drop_in_place();\n    alloc.deallocate(non_null.cast::<u8>(), Layout::new::<String>());\n}
    \n
    Source

    pub fn as_mut_ptr(b: &mut Box<T, A>) -> *mut T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw mutable pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the memory\nmay still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut b = Box::new(0);\n    let ptr1 = Box::as_mut_ptr(&mut b);\n    ptr1.write(1);\n    let ptr2 = Box::as_mut_ptr(&mut b);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    Source

    pub fn as_ptr(b: &Box<T, A>) -> *const T

    🔬This is a nightly-only experimental API. (box_as_ptr)

    Returns a raw pointer to the Box’s contents.

    \n

    The caller must ensure that the Box outlives the pointer this\nfunction returns, or else it will end up dangling.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the Box, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying memory, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the memory,\nas well as writing to this memory, may still invalidate this pointer.\nSee the example below for how this guarantee can be used.

    \n
    §Examples
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    #![feature(box_as_ptr)]\n\nunsafe {\n    let mut v = Box::new(0);\n    let ptr1 = Box::as_ptr(&v);\n    let ptr2 = Box::as_mut_ptr(&mut v);\n    let _val = ptr2.read();\n    // No write to this memory has happened yet, so `ptr1` is still valid.\n    let _val = ptr1.read();\n    // However, once we do a write...\n    ptr2.write(1);\n    // ... `ptr1` is no longer valid.\n    // This would be UB: let _val = ptr1.read();\n}
    \n
    Source

    pub fn allocator(b: &Box<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::allocator(&b) instead of b.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.26.0 · Source

    pub fn leak<'a>(b: Box<T, A>) -> &'a mut T
    where\n A: 'a,

    Consumes and leaks the Box, returning a mutable reference,\n&'a mut T.

    \n

    Note that the type T must outlive the chosen lifetime 'a. If the type\nhas only static references, or none at all, then this may be chosen to be\n'static.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak. If this is not acceptable, the reference should first be wrapped\nwith the Box::from_raw function producing a Box. This Box can\nthen be dropped which will properly destroy T and release the\nallocated memory.

    \n

    Note: this is an associated function, which means that you have\nto call it as Box::leak(b) instead of b.leak(). This\nis so that there is no conflict with a method on the inner type.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = Box::new(41);\nlet static_ref: &'static mut usize = Box::leak(x);\n*static_ref += 1;\nassert_eq!(*static_ref, 42);
    \n

    Unsized data:

    \n\n
    let x = vec![1, 2, 3].into_boxed_slice();\nlet static_ref = Box::leak(x);\nstatic_ref[0] = 4;\nassert_eq!(*static_ref, [4, 2, 3]);
    \n
    1.63.0 · Source

    pub fn into_pin(boxed: Box<T, A>) -> Pin<Box<T, A>>
    where\n A: 'static,

    Converts a Box<T> into a Pin<Box<T>>. If T does not implement Unpin, then\n*boxed will be pinned in memory and unable to be moved.

    \n

    This conversion does not allocate on the heap and happens in place.

    \n

    This is also available via From.

    \n

    Constructing and pinning a Box with Box::into_pin(Box::new(x))\ncan also be written more concisely using Box::pin(x).\nThis into_pin method is useful if you already have a Box<T>, or you are\nconstructing a (pinned) Box in a different way than with Box::new.

    \n
    §Notes
    \n

    It’s not recommended that crates add an impl like From<Box<T>> for Pin<T>,\nas it’ll introduce an ambiguity when calling Pin::from.\nA demonstration of such a poor impl is shown below.

    \n\n
    struct Foo; // A type defined in this crate.\nimpl From<Box<()>> for Pin<Foo> {\n    fn from(_: Box<()>) -> Pin<Foo> {\n        Pin::new(Foo)\n    }\n}\n\nlet foo = Box::new(());\nlet bar = Pin::from(foo);
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    Source§

    impl<T, A> Box<T, A>
    where\n A: Allocator,

    Source

    pub fn new_in(x: T, alloc: A) -> Box<T, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it.

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::new_in(5, System);
    \n
    Source

    pub fn try_new_in(x: T, alloc: A) -> Result<Box<T, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Allocates memory in the given allocator then places x into it,\nreturning an error if the allocation fails

    \n

    This doesn’t actually allocate if T is zero-sized.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet five = Box::try_new_in(5, System)?;
    \n
    Source

    pub fn new_uninit_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::new_uninit_in(System);\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn try_new_uninit_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new box with uninitialized contents in the provided allocator,\nreturning an error if the allocation fails

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut five = Box::<u32, _>::try_new_uninit_in(System)?;\n// Deferred initialization:\nfive.write(5);\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn new_zeroed_in(alloc: A) -> Box<MaybeUninit<T>, A>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    Source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Box<MaybeUninit<T>, A>, AllocError>
    where\n A: Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Box with uninitialized contents, with the memory\nbeing filled with 0 bytes in the provided allocator,\nreturning an error if the allocation fails,

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet zero = Box::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    Source

    pub fn pin_in(x: T, alloc: A) -> Pin<Box<T, A>>
    where\n A: 'static + Allocator,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Box<T, A>>. If T does not implement Unpin, then\nx will be pinned in memory and unable to be moved.

    \n

    Constructing and pinning of the Box can also be done in two steps: Box::pin_in(x, alloc)\ndoes the same as Box::into_pin(Box::new_in(x, alloc)). Consider using\ninto_pin if you already have a Box<T, A>, or if you want to\nconstruct a (pinned) Box in a different way than with Box::new_in.

    \n
    Source

    pub fn into_boxed_slice(boxed: Box<T, A>) -> Box<[T], A>

    🔬This is a nightly-only experimental API. (box_into_boxed_slice)

    Converts a Box<T> into a Box<[T]>

    \n

    This conversion does not allocate on the heap and happens in place.

    \n
    Source

    pub fn into_inner(boxed: Box<T, A>) -> T

    🔬This is a nightly-only experimental API. (box_into_inner)

    Consumes the Box, returning the wrapped value.

    \n
    §Examples
    \n
    #![feature(box_into_inner)]\n\nlet c = Box::new(5);\n\nassert_eq!(Box::into_inner(c), 5);
    \n
    ",0,"mcaptcha::db::BoxDB"],["
    §

    impl<T> Buf for Box<T>
    where\n T: Buf + ?Sized,

    §

    fn remaining(&self) -> usize

    Returns the number of bytes between the current position and the end of\nthe buffer. Read more
    §

    fn chunk(&self) -> &[u8]

    Returns a slice starting at the current position and of length between 0\nand Buf::remaining(). Note that this can return a shorter slice (this\nallows non-continuous internal representation). Read more
    §

    fn chunks_vectored<'b>(&'b self, dst: &mut [IoSlice<'b>]) -> usize

    Fills dst with potentially multiple slices starting at self’s\ncurrent position. Read more
    §

    fn advance(&mut self, cnt: usize)

    Advance the internal cursor of the Buf Read more
    §

    fn has_remaining(&self) -> bool

    Returns true if there are any more bytes to consume Read more
    §

    fn copy_to_slice(&mut self, dst: &mut [u8])

    Copies bytes from self into dst. Read more
    §

    fn get_u8(&mut self) -> u8

    Gets an unsigned 8 bit integer from self. Read more
    §

    fn get_i8(&mut self) -> i8

    Gets a signed 8 bit integer from self. Read more
    §

    fn get_u16(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_u16_le(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_u16_ne(&mut self) -> u16

    Gets an unsigned 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_i16(&mut self) -> i16

    Gets a signed 16 bit integer from self in big-endian byte order. Read more
    §

    fn get_i16_le(&mut self) -> i16

    Gets a signed 16 bit integer from self in little-endian byte order. Read more
    §

    fn get_i16_ne(&mut self) -> i16

    Gets a signed 16 bit integer from self in native-endian byte order. Read more
    §

    fn get_u32(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the big-endian byte order. Read more
    §

    fn get_u32_le(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in the little-endian byte order. Read more
    §

    fn get_u32_ne(&mut self) -> u32

    Gets an unsigned 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_i32(&mut self) -> i32

    Gets a signed 32 bit integer from self in big-endian byte order. Read more
    §

    fn get_i32_le(&mut self) -> i32

    Gets a signed 32 bit integer from self in little-endian byte order. Read more
    §

    fn get_i32_ne(&mut self) -> i32

    Gets a signed 32 bit integer from self in native-endian byte order. Read more
    §

    fn get_u64(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_u64_le(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_u64_ne(&mut self) -> u64

    Gets an unsigned 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_i64(&mut self) -> i64

    Gets a signed 64 bit integer from self in big-endian byte order. Read more
    §

    fn get_i64_le(&mut self) -> i64

    Gets a signed 64 bit integer from self in little-endian byte order. Read more
    §

    fn get_i64_ne(&mut self) -> i64

    Gets a signed 64 bit integer from self in native-endian byte order. Read more
    §

    fn get_uint(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in big-endian byte order. Read more
    §

    fn get_uint_le(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in little-endian byte order. Read more
    §

    fn get_uint_ne(&mut self, nbytes: usize) -> u64

    Gets an unsigned n-byte integer from self in native-endian byte order. Read more
    §

    fn get_int(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in big-endian byte order. Read more
    §

    fn get_int_le(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in little-endian byte order. Read more
    §

    fn get_int_ne(&mut self, nbytes: usize) -> i64

    Gets a signed n-byte integer from self in native-endian byte order. Read more
    §

    fn copy_to_bytes(&mut self, len: usize) -> Bytes

    Consumes len bytes inside self and returns new instance of Bytes\nwith this data. Read more
    §

    fn get_u128(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_u128_le(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_u128_ne(&mut self) -> u128

    Gets an unsigned 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_i128(&mut self) -> i128

    Gets a signed 128 bit integer from self in big-endian byte order. Read more
    §

    fn get_i128_le(&mut self) -> i128

    Gets a signed 128 bit integer from self in little-endian byte order. Read more
    §

    fn get_i128_ne(&mut self) -> i128

    Gets a signed 128 bit integer from self in native-endian byte order. Read more
    §

    fn get_f32(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f32_le(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f32_ne(&mut self) -> f32

    Gets an IEEE754 single-precision (4 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn get_f64(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in big-endian byte order. Read more
    §

    fn get_f64_le(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in little-endian byte order. Read more
    §

    fn get_f64_ne(&mut self) -> f64

    Gets an IEEE754 double-precision (8 bytes) floating point number from\nself in native-endian byte order. Read more
    §

    fn take(self, limit: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an adaptor which will read at most limit bytes from self. Read more
    §

    fn chain<U>(self, next: U) -> Chain<Self, U>
    where\n U: Buf,\n Self: Sized,

    Creates an adaptor which will chain this buffer with another. Read more
    §

    fn reader(self) -> Reader<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Read trait for self. Read more
    ","Buf","mcaptcha::db::BoxDB"],["
    §

    impl<T> BufMut for Box<T>
    where\n T: BufMut + ?Sized,

    §

    fn remaining_mut(&self) -> usize

    Returns the number of bytes that can be written from the current\nposition until the end of the buffer is reached. Read more
    §

    fn chunk_mut(&mut self) -> &mut UninitSlice

    Returns a mutable slice starting at the current BufMut position and of\nlength between 0 and BufMut::remaining_mut(). Note that this can be shorter than the\nwhole remainder of the buffer (this allows non-continuous implementation). Read more
    §

    unsafe fn advance_mut(&mut self, cnt: usize)

    Advance the internal cursor of the BufMut Read more
    §

    fn put_slice(&mut self, src: &[u8])

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_u8(&mut self, n: u8)

    Writes an unsigned 8 bit integer to self. Read more
    §

    fn put_i8(&mut self, n: i8)

    Writes a signed 8 bit integer to self. Read more
    §

    fn put_u16(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_u16_le(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_u16_ne(&mut self, n: u16)

    Writes an unsigned 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_i16(&mut self, n: i16)

    Writes a signed 16 bit integer to self in big-endian byte order. Read more
    §

    fn put_i16_le(&mut self, n: i16)

    Writes a signed 16 bit integer to self in little-endian byte order. Read more
    §

    fn put_i16_ne(&mut self, n: i16)

    Writes a signed 16 bit integer to self in native-endian byte order. Read more
    §

    fn put_u32(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_u32_le(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_u32_ne(&mut self, n: u32)

    Writes an unsigned 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_i32(&mut self, n: i32)

    Writes a signed 32 bit integer to self in big-endian byte order. Read more
    §

    fn put_i32_le(&mut self, n: i32)

    Writes a signed 32 bit integer to self in little-endian byte order. Read more
    §

    fn put_i32_ne(&mut self, n: i32)

    Writes a signed 32 bit integer to self in native-endian byte order. Read more
    §

    fn put_u64(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u64_le(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_u64_ne(&mut self, n: u64)

    Writes an unsigned 64 bit integer to self in native-endian byte order. Read more
    §

    fn put_i64(&mut self, n: i64)

    Writes a signed 64 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i64_le(&mut self, n: i64)

    Writes a signed 64 bit integer to self in little-endian byte order. Read more
    §

    fn put_i64_ne(&mut self, n: i64)

    Writes a signed 64 bit integer to self in native-endian byte order. Read more
    §

    fn has_remaining_mut(&self) -> bool

    Returns true if there is space in self for more bytes. Read more
    §

    fn put<T>(&mut self, src: T)
    where\n T: Buf,\n Self: Sized,

    Transfer bytes into self from src and advance the cursor by the\nnumber of bytes written. Read more
    §

    fn put_bytes(&mut self, val: u8, cnt: usize)

    Put cnt bytes val into self. Read more
    §

    fn put_u128(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_u128_le(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_u128_ne(&mut self, n: u128)

    Writes an unsigned 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_i128(&mut self, n: i128)

    Writes a signed 128 bit integer to self in the big-endian byte order. Read more
    §

    fn put_i128_le(&mut self, n: i128)

    Writes a signed 128 bit integer to self in little-endian byte order. Read more
    §

    fn put_i128_ne(&mut self, n: i128)

    Writes a signed 128 bit integer to self in native-endian byte order. Read more
    §

    fn put_uint(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in big-endian byte order. Read more
    §

    fn put_uint_le(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the little-endian byte order. Read more
    §

    fn put_uint_ne(&mut self, n: u64, nbytes: usize)

    Writes an unsigned n-byte integer to self in the native-endian byte order. Read more
    §

    fn put_int(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in big-endian byte order. Read more
    §

    fn put_int_le(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in little-endian byte order. Read more
    §

    fn put_int_ne(&mut self, n: i64, nbytes: usize)

    Writes low nbytes of a signed integer to self in native-endian byte order. Read more
    §

    fn put_f32(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f32_le(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f32_ne(&mut self, n: f32)

    Writes an IEEE754 single-precision (4 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn put_f64(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in big-endian byte order. Read more
    §

    fn put_f64_le(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in little-endian byte order. Read more
    §

    fn put_f64_ne(&mut self, n: f64)

    Writes an IEEE754 double-precision (8 bytes) floating point number to\nself in native-endian byte order. Read more
    §

    fn limit(self, limit: usize) -> Limit<Self>
    where\n Self: Sized,

    Creates an adaptor which can write at most limit bytes to self. Read more
    §

    fn writer(self) -> Writer<Self>
    where\n Self: Sized,

    Creates an adaptor which implements the Write trait for self. Read more
    §

    fn chain_mut<U>(self, next: U) -> Chain<Self, U>
    where\n U: BufMut,\n Self: Sized,

    Creates an adapter which will chain this buffer with another. Read more
    ","BufMut","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<B> BufRead for Box<B>
    where\n B: BufRead + ?Sized,

    Source§

    fn fill_buf(&mut self) -> Result<&[u8], Error>

    Returns the contents of the internal buffer, filling it with more data, via Read methods, if empty. Read more
    Source§

    fn consume(&mut self, amt: usize)

    Marks the given amount of additional bytes from the internal buffer as having been read.\nSubsequent calls to read only return bytes that have not been marked as read. Read more
    Source§

    fn has_data_left(&mut self) -> Result<bool, Error>

    🔬This is a nightly-only experimental API. (buf_read_has_data_left)
    Checks if there is any data left to be read. Read more
    Source§

    fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes into buf until the delimiter byte or EOF is reached. Read more
    Source§

    fn skip_until(&mut self, byte: u8) -> Result<usize, Error>

    Skips all bytes until the delimiter byte or EOF is reached. Read more
    Source§

    fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until a newline (the 0xA byte) is reached, and append\nthem to the provided String buffer. Read more
    1.0.0 · Source§

    fn split(self, byte: u8) -> Split<Self>
    where\n Self: Sized,

    Returns an iterator over the contents of this reader split on the byte\nbyte. Read more
    1.0.0 · Source§

    fn lines(self) -> Lines<Self>
    where\n Self: Sized,

    Returns an iterator over the lines of this reader. Read more
    ","BufRead","mcaptcha::db::BoxDB"],["
    §

    impl<T> BufferProvider for Box<T>
    where\n T: BufferProvider + ?Sized,

    §

    fn load_buffer(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<BufferMarker>, DataError>

    Loads a [DataPayload]<[BufferMarker]> according to the key and request.
    ","BufferProvider","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Clone for Box<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    Source§

    fn clone(&self) -> Box<T, A>

    Returns a new box with a clone() of this box’s contents.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet y = x.clone();\n\n// The value is the same\nassert_eq!(x, y);\n\n// But they are unique objects\nassert_ne!(&*x as *const i32, &*y as *const i32);
    \n
    Source§

    fn clone_from(&mut self, source: &Box<T, A>)

    Copies source’s contents into self without creating a new allocation.

    \n
    §Examples
    \n
    let x = Box::new(5);\nlet mut y = Box::new(10);\nlet yp: *const i32 = &*y;\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no allocation occurred\nassert_eq!(yp, &*y);
    \n
    ","Clone","mcaptcha::db::BoxDB"],["
    Source§

    impl Clone for Box<dyn MCDatabase>

    Source§

    fn clone(&self) -> Box<dyn MCDatabase>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::db::BoxDB"],["
    Source§

    impl<G, R, A> Coroutine<R> for Box<G, A>
    where\n G: Coroutine<R> + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Yield = <G as Coroutine<R>>::Yield

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine yields. Read more
    Source§

    type Return = <G as Coroutine<R>>::Return

    🔬This is a nightly-only experimental API. (coroutine_trait)
    The type of value this coroutine returns. Read more
    Source§

    fn resume(\n self: Pin<&mut Box<G, A>>,\n arg: R,\n) -> CoroutineState<<Box<G, A> as Coroutine<R>>::Yield, <Box<G, A> as Coroutine<R>>::Return>

    🔬This is a nightly-only experimental API. (coroutine_trait)
    Resumes the execution of this coroutine. Read more
    ","Coroutine","mcaptcha::db::BoxDB"],["
    §

    impl<M, P> DataProvider<M> for Box<P>
    where\n M: KeyedDataMarker,\n P: DataProvider<M> + ?Sized,

    §

    fn load(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DataProvider","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Debug for Box<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::db::BoxDB"],["
    §

    impl<'a, T> DecodeValue<'a> for Box<T>
    where\n T: DecodeValue<'a>,

    §

    fn decode_value<R>(reader: &mut R, header: Header) -> Result<Box<T>, Error>
    where\n R: Reader<'a>,

    Attempt to decode this message using the provided [Reader].
    ","DecodeValue<'a>","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T> Default for Box<T>
    where\n T: Default,

    Source§

    fn default() -> Box<T>

    Creates a Box<T>, with the Default value for T.

    \n
    ","Default","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> DerefMut for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn deref_mut(&mut self) -> &mut T

    Mutably dereferences the value.
    ","DerefMut","mcaptcha::db::BoxDB"],["
    Source§

    impl<'de, T> Deserialize<'de> for Box<T>
    where\n T: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Box<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::db::BoxDB"],["
    Source§

    impl<'de, T> Deserializer<'de> for Box<T>
    where\n T: Deserializer<'de> + ?Sized,

    Source§

    fn erased_deserialize_any(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_bool(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_i8(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_i16(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_i32(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_i64(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_i128(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_u8(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_u16(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_u32(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_u64(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_u128(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_f32(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_f64(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_char(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_str(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_string(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_bytes(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_byte_buf(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_option(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_unit(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_unit_struct(\n &mut self,\n name: &'static str,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_newtype_struct(\n &mut self,\n name: &'static str,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_seq(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_tuple(\n &mut self,\n len: usize,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_tuple_struct(\n &mut self,\n name: &'static str,\n len: usize,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_map(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_struct(\n &mut self,\n name: &'static str,\n fields: &'static [&'static str],\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_identifier(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_enum(\n &mut self,\n name: &'static str,\n variants: &'static [&'static str],\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_deserialize_ignored_any(\n &mut self,\n visitor: &mut dyn Visitor<'de>,\n) -> Result<Out, Error>

    Source§

    fn erased_is_human_readable(&self) -> bool

    ","Deserializer<'de>","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Display for Box<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<I, A> DoubleEndedIterator for Box<I, A>
    where\n I: DoubleEndedIterator + ?Sized,\n A: Allocator,

    Source§

    fn next_back(&mut self) -> Option<<I as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    Source§

    fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element from the end of the iterator. Read more
    Source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.27.0 · Source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes\nelements starting from the back of the iterator. Read more
    1.27.0 · Source§

    fn rfold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single,\nfinal value, starting from the back. Read more
    1.27.0 · Source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    ","DoubleEndedIterator","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Drop for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","mcaptcha::db::BoxDB"],["
    §

    impl<M, P> DynamicDataProvider<M> for Box<P>
    where\n M: DataMarker,\n P: DynamicDataProvider<M> + ?Sized,

    §

    fn load_data(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DynamicDataProvider","mcaptcha::db::BoxDB"],["
    §

    impl<T> EncodeAsVarULE<T> for Box<T>
    where\n T: VarULE + ?Sized,

    §

    fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R

    Calls cb with a piecewise list of byte slices that when concatenated\nproduce the memory pattern of the corresponding instance of T. Read more
    §

    fn encode_var_ule_len(&self) -> usize

    Return the length, in bytes, of the corresponding [VarULE] type
    §

    fn encode_var_ule_write(&self, dst: &mut [u8])

    Write the corresponding [VarULE] type to the dst buffer. dst should\nbe the size of [Self::encode_var_ule_len()]
    ","EncodeAsVarULE","mcaptcha::db::BoxDB"],["
    §

    impl<T> EncodeValue for Box<T>
    where\n T: EncodeValue,

    §

    fn value_len(&self) -> Result<Length, Error>

    Compute the length of this value (sans [Tag]+[Length] header) when\nencoded as ASN.1 DER.
    §

    fn encode_value(&self, writer: &mut impl Writer) -> Result<(), Error>

    Encode value (sans [Tag]+[Length] header) as ASN.1 DER using the\nprovided [Writer].
    §

    fn header(&self) -> Result<Header, Error>
    where\n Self: Tagged,

    Get the [Header] used to encode this value.
    ","EncodeValue","mcaptcha::db::BoxDB"],["
    1.8.0 · Source§

    impl<E> Error for Box<E>
    where\n E: Error,

    Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    Source§

    fn provide<'b>(&'b self, request: &mut Request<'b>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    ","Error","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<I, A> ExactSizeIterator for Box<I, A>
    where\n I: ExactSizeIterator + ?Sized,\n A: Allocator,

    Source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    Source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    ","ExactSizeIterator","mcaptcha::db::BoxDB"],["
    1.35.0 · Source§

    impl<Args, F, A> Fn<Args> for Box<F, A>
    where\n Args: Tuple,\n F: Fn<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call(\n &self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","Fn","mcaptcha::db::BoxDB"],["
    1.35.0 · Source§

    impl<Args, F, A> FnMut<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnMut<Args> + ?Sized,\n A: Allocator,

    Source§

    extern "rust-call" fn call_mut(\n &mut self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnMut","mcaptcha::db::BoxDB"],["
    1.35.0 · Source§

    impl<Args, F, A> FnOnce<Args> for Box<F, A>
    where\n Args: Tuple,\n F: FnOnce<Args> + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as FnOnce<Args>>::Output

    The returned type after the call operator is used.
    Source§

    extern "rust-call" fn call_once(\n self,\n args: Args,\n) -> <Box<F, A> as FnOnce<Args>>::Output

    🔬This is a nightly-only experimental API. (fn_traits)
    Performs the call operation.
    ","FnOnce","mcaptcha::db::BoxDB"],["
    1.6.0 · Source§

    impl<T> From<T> for Box<T>

    Source§

    fn from(t: T) -> Box<T>

    Converts a T into a Box<T>

    \n

    The conversion allocates on the heap and moves t\nfrom the stack into it.

    \n
    §Examples
    \n
    let x = 5;\nlet boxed = Box::new(5);\n\nassert_eq!(Box::from(x), boxed);
    \n
    ","From","mcaptcha::db::BoxDB"],["
    §

    impl<F> FusedFuture for Box<F>
    where\n F: FusedFuture + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the underlying future should no longer be polled.
    ","FusedFuture","mcaptcha::db::BoxDB"],["
    §

    impl<S> FusedStream for Box<S>
    where\n S: FusedStream + Unpin + ?Sized,

    §

    fn is_terminated(&self) -> bool

    Returns true if the stream should no longer be polled.
    ","FusedStream","mcaptcha::db::BoxDB"],["
    1.36.0 · Source§

    impl<F, A> Future for Box<F, A>
    where\n F: Future + Unpin + ?Sized,\n A: Allocator,

    Source§

    type Output = <F as Future>::Output

    The type of value produced on completion.
    Source§

    fn poll(\n self: Pin<&mut Box<F, A>>,\n cx: &mut Context<'_>,\n) -> Poll<<Box<F, A> as Future>::Output>

    Attempts to resolve the future to a final value, registering\nthe current task for wakeup if the value is not yet available. Read more
    ","Future","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Hash for Box<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    Source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","mcaptcha::db::BoxDB"],["
    1.22.0 · Source§

    impl<T, A> Hasher for Box<T, A>
    where\n T: Hasher + ?Sized,\n A: Allocator,

    Source§

    fn finish(&self) -> u64

    Returns the hash value for the values written so far. Read more
    Source§

    fn write(&mut self, bytes: &[u8])

    Writes some data into this Hasher. Read more
    Source§

    fn write_u8(&mut self, i: u8)

    Writes a single u8 into this hasher.
    Source§

    fn write_u16(&mut self, i: u16)

    Writes a single u16 into this hasher.
    Source§

    fn write_u32(&mut self, i: u32)

    Writes a single u32 into this hasher.
    Source§

    fn write_u64(&mut self, i: u64)

    Writes a single u64 into this hasher.
    Source§

    fn write_u128(&mut self, i: u128)

    Writes a single u128 into this hasher.
    Source§

    fn write_usize(&mut self, i: usize)

    Writes a single usize into this hasher.
    Source§

    fn write_i8(&mut self, i: i8)

    Writes a single i8 into this hasher.
    Source§

    fn write_i16(&mut self, i: i16)

    Writes a single i16 into this hasher.
    Source§

    fn write_i32(&mut self, i: i32)

    Writes a single i32 into this hasher.
    Source§

    fn write_i64(&mut self, i: i64)

    Writes a single i64 into this hasher.
    Source§

    fn write_i128(&mut self, i: i128)

    Writes a single i128 into this hasher.
    Source§

    fn write_isize(&mut self, i: isize)

    Writes a single isize into this hasher.
    Source§

    fn write_length_prefix(&mut self, len: usize)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a length prefix into this hasher, as part of being prefix-free. Read more
    Source§

    fn write_str(&mut self, s: &str)

    🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
    Writes a single str into this hasher. Read more
    ","Hasher","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<I, A> Iterator for Box<I, A>
    where\n I: Iterator + ?Sized,\n A: Allocator,

    Source§

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    Source§

    fn next(&mut self) -> Option<<I as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    Source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    Source§

    fn nth(&mut self, n: usize) -> Option<<I as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    Source§

    fn last(self) -> Option<<I as Iterator>::Item>

    Consumes the iterator, returning the last element. Read more
    Source§

    fn next_chunk<const N: usize>(\n &mut self,\n) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · Source§

    fn count(self) -> usize
    where\n Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    Source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · Source§

    fn step_by(self, step: usize) -> StepBy<Self>
    where\n Self: Sized,

    Creates an iterator starting at the same point, but stepping by\nthe given amount at each iteration. Read more
    1.0.0 · Source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · Source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
    where\n Self: Sized,\n U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    Source§

    fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
    where\n Self: Sized,\n Self::Item: Clone,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places a copy of separator between adjacent\nitems of the original iterator. Read more
    Source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
    where\n Self: Sized,\n G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator\nbetween adjacent items of the original iterator. Read more
    1.0.0 · Source§

    fn map<B, F>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each\nelement. Read more
    1.21.0 · Source§

    fn for_each<F>(self, f: F)
    where\n Self: Sized,\n F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · Source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element\nshould be yielded. Read more
    1.0.0 · Source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · Source§

    fn enumerate(self) -> Enumerate<Self>
    where\n Self: Sized,

    Creates an iterator which gives the current iteration count as well as\nthe next value. Read more
    1.0.0 · Source§

    fn peekable(self) -> Peekable<Self>
    where\n Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods\nto look at the next element of the iterator without consuming it. See\ntheir documentation for more information. Read more
    1.0.0 · Source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · Source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · Source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · Source§

    fn skip(self, n: usize) -> Skip<Self>
    where\n Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · Source§

    fn take(self, n: usize) -> Take<Self>
    where\n Self: Sized,

    Creates an iterator that yields the first n elements, or fewer\nif the underlying iterator ends sooner. Read more
    1.0.0 · Source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
    where\n Self: Sized,\n F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but\nunlike fold, produces a new iterator. Read more
    1.0.0 · Source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
    where\n Self: Sized,\n U: IntoIterator,\n F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    1.29.0 · Source§

    fn flatten(self) -> Flatten<Self>
    where\n Self: Sized,\n Self::Item: IntoIterator,

    Creates an iterator that flattens nested structure. Read more
    Source§

    fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
    where\n Self: Sized,\n F: FnMut(&[Self::Item; N]) -> R,

    🔬This is a nightly-only experimental API. (iter_map_windows)
    Calls the given function f for each contiguous window of size N over\nself and returns an iterator over the outputs of f. Like slice::windows(),\nthe windows during mapping overlap as well. Read more
    1.0.0 · Source§

    fn fuse(self) -> Fuse<Self>
    where\n Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · Source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Iterator. Read more
    1.0.0 · Source§

    fn collect<B>(self) -> B
    where\n B: FromIterator<Self::Item>,\n Self: Sized,

    Transforms an iterator into a collection. Read more
    Source§

    fn try_collect<B>(\n &mut self,\n) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
    where\n Self: Sized,\n Self::Item: Try,\n <Self::Item as Try>::Residual: Residual<B>,\n B: FromIterator<<Self::Item as Try>::Output>,

    🔬This is a nightly-only experimental API. (iterator_try_collect)
    Fallibly transforms an iterator into a collection, short circuiting if\na failure is encountered. Read more
    Source§

    fn collect_into<E>(self, collection: &mut E) -> &mut E
    where\n E: Extend<Self::Item>,\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · Source§

    fn partition<B, F>(self, f: F) -> (B, B)
    where\n Self: Sized,\n B: Default + Extend<Self::Item>,\n F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    Source§

    fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
    where\n T: 'a,\n Self: Sized + DoubleEndedIterator<Item = &'a mut T>,\n P: FnMut(&T) -> bool,

    🔬This is a nightly-only experimental API. (iter_partition_in_place)
    Reorders the elements of this iterator in-place according to the given predicate,\nsuch that all those that return true precede all those that return false.\nReturns the number of true elements found. Read more
    Source§

    fn is_partitioned<P>(self, predicate: P) -> bool
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate,\nsuch that all those that return true precede all those that return false. Read more
    1.27.0 · Source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> R,\n R: Try<Output = B>,

    An iterator method that applies a function as long as it returns\nsuccessfully, producing a single, final value. Read more
    1.27.0 · Source§

    fn try_for_each<F, R>(&mut self, f: F) -> R
    where\n Self: Sized,\n F: FnMut(Self::Item) -> R,\n R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the\niterator, stopping at the first error and returning that error. Read more
    1.0.0 · Source§

    fn fold<B, F>(self, init: B, f: F) -> B
    where\n Self: Sized,\n F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation,\nreturning the final result. Read more
    1.51.0 · Source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing\noperation. Read more
    Source§

    fn try_reduce<R>(\n &mut self,\n f: impl FnMut(Self::Item, Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
    where\n Self: Sized,\n R: Try<Output = Self::Item>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the\nclosure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · Source§

    fn all<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn any<F>(&mut self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · Source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
    where\n Self: Sized,\n P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · Source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>
    where\n Self: Sized,\n F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns\nthe first non-none result. Read more
    Source§

    fn try_find<R>(\n &mut self,\n f: impl FnMut(&Self::Item) -> R,\n) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
    where\n Self: Sized,\n R: Try<Output = bool>,\n <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns\nthe first true result or the first error. Read more
    1.0.0 · Source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where\n Self: Sized,\n P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.0.0 · Source§

    fn rposition<P>(&mut self, predicate: P) -> Option<usize>
    where\n P: FnMut(Self::Item) -> bool,\n Self: Sized + ExactSizeIterator + DoubleEndedIterator,

    Searches for an element in an iterator from the right, returning its\nindex. Read more
    1.0.0 · Source§

    fn max(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the maximum element of an iterator. Read more
    1.0.0 · Source§

    fn min(self) -> Option<Self::Item>
    where\n Self: Sized,\n Self::Item: Ord,

    Returns the minimum element of an iterator. Read more
    1.6.0 · Source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the\nspecified comparison function. Read more
    1.6.0 · Source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
    where\n B: Ord,\n Self: Sized,\n F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the\nspecified function. Read more
    1.15.0 · Source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the\nspecified comparison function. Read more
    1.0.0 · Source§

    fn rev(self) -> Rev<Self>
    where\n Self: Sized + DoubleEndedIterator,

    Reverses an iterator’s direction. Read more
    1.0.0 · Source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
    where\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · Source§

    fn copied<'a, T>(self) -> Copied<Self>
    where\n T: Copy + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · Source§

    fn cloned<'a, T>(self) -> Cloned<Self>
    where\n T: Clone + 'a,\n Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    1.0.0 · Source§

    fn cycle(self) -> Cycle<Self>
    where\n Self: Sized + Clone,

    Repeats an iterator endlessly. Read more
    Source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
    where\n Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · Source§

    fn sum<S>(self) -> S
    where\n Self: Sized,\n S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · Source§

    fn product<P>(self) -> P
    where\n Self: Sized,\n P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    1.5.0 · Source§

    fn cmp<I>(self, other: I) -> Ordering
    where\n I: IntoIterator<Item = Self::Item>,\n Self::Item: Ord,\n Self: Sized,

    Lexicographically compares the elements of this Iterator with those\nof another. Read more
    Source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Lexicographically compares the PartialOrd elements of\nthis Iterator with those of another. The comparison works like short-circuit\nevaluation, returning a result without comparing the remaining elements.\nAs soon as an order can be determined, the evaluation stops and a result is returned. Read more
    Source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those\nof another with respect to the specified comparison function. Read more
    1.5.0 · Source§

    fn eq<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are equal to those of\nanother. Read more
    Source§

    fn eq_by<I, F>(self, other: I, eq: F) -> bool
    where\n Self: Sized,\n I: IntoIterator,\n F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of\nanother with respect to the specified equality function. Read more
    1.5.0 · Source§

    fn ne<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialEq<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are not equal to those of\nanother. Read more
    1.5.0 · Source§

    fn lt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless than those of another. Read more
    1.5.0 · Source§

    fn le<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\nless or equal to those of another. Read more
    1.5.0 · Source§

    fn gt<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than those of another. Read more
    1.5.0 · Source§

    fn ge<I>(self, other: I) -> bool
    where\n I: IntoIterator,\n Self::Item: PartialOrd<<I as IntoIterator>::Item>,\n Self: Sized,

    Determines if the elements of this Iterator are lexicographically\ngreater than or equal to those of another. Read more
    1.82.0 · Source§

    fn is_sorted(self) -> bool
    where\n Self: Sized,\n Self::Item: PartialOrd,

    Checks if the elements of this iterator are sorted. Read more
    1.82.0 · Source§

    fn is_sorted_by<F>(self, compare: F) -> bool
    where\n Self: Sized,\n F: FnMut(&Self::Item, &Self::Item) -> bool,

    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    1.82.0 · Source§

    fn is_sorted_by_key<F, K>(self, f: F) -> bool
    where\n Self: Sized,\n F: FnMut(Self::Item) -> K,\n K: PartialOrd,

    Checks if the elements of this iterator are sorted using the given key extraction\nfunction. Read more
    ","Iterator","mcaptcha::db::BoxDB"],["
    §

    impl<Sp> LocalSpawn for Box<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>,\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","mcaptcha::db::BoxDB"],["
    Source§

    impl<T> Log for Box<T>
    where\n T: Log + ?Sized,

    Source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    Source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    Source§

    fn flush(&self)

    Flushes any buffered records. Read more
    ","Log","mcaptcha::db::BoxDB"],["
    §

    impl<M> Message for Box<M>
    where\n M: Message,

    Allow users to use Box<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","mcaptcha::db::BoxDB"],["
    §

    impl<B> MessageBody for Box<B>
    where\n B: MessageBody + Unpin + ?Sized,

    §

    type Error = <B as MessageBody>::Error

    The type of error that will be returned if streaming body fails. Read more
    §

    fn size(&self) -> BodySize

    Body size hint. Read more
    §

    fn poll_next(\n self: Pin<&mut Box<B>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<Result<Bytes, <Box<B> as MessageBody>::Error>>>

    Attempt to pull out the next chunk of body bytes. Read more
    §

    fn try_into_bytes(self) -> Result<Bytes, Self>
    where\n Self: Sized,

    Try to convert into the complete chunk of body bytes. Read more
    §

    fn boxed(self) -> BoxBody
    where\n Self: Sized + 'static,

    Wraps this body into a BoxBody. Read more
    ","MessageBody","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Ord for Box<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    Source§

    fn cmp(&self, other: &Box<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","mcaptcha::db::BoxDB"],["
    §

    impl<I, O, T> Parser<I, O> for Box<T>
    where\n I: Clone,\n T: Parser<I, O> + ?Sized,

    §

    type Error = <T as Parser<I, O>>::Error

    The type of errors emitted by this parser.
    §

    fn parse_recovery<'a, Iter, S>(\n &self,\n stream: S,\n) -> (Option<O>, Vec<Self::Error>)
    where\n Self: Sized,\n Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a,\n S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

    Parse a stream of tokens, yielding an output if possible, and any errors encountered along the way. Read more
    §

    fn parse_recovery_verbose<'a, Iter, S>(\n &self,\n stream: S,\n) -> (Option<O>, Vec<Self::Error>)
    where\n Self: Sized,\n Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a,\n S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

    Parse a stream of tokens, yielding an output if possible, and any errors encountered along the way. Unlike\n[Parser::parse_recovery], this function will produce verbose debugging output as it executes. Read more
    §

    fn parse<'a, Iter, S>(&self, stream: S) -> Result<O, Vec<Self::Error>>
    where\n Self: Sized,\n Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a,\n S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

    Parse a stream of tokens, yielding an output or any errors that were encountered along the way. Read more
    §

    fn debug<T>(self, x: T) -> Debug<Self>
    where\n Self: Sized,\n T: Display + 'static,

    Include this parser in the debugging output produced by [Parser::parse_recovery_verbose]. Read more
    §

    fn map<U, F>(self, f: F) -> Map<Self, F, O>
    where\n Self: Sized,\n F: Fn(O) -> U,

    Map the output of this parser to another value. Read more
    §

    fn map_with_span<U, F>(self, f: F) -> MapWithSpan<Self, F, O>
    where\n Self: Sized,\n F: Fn(O, <Self::Error as Error<I>>::Span) -> U,

    Map the output of this parser to another value, making use of the pattern’s span when doing so. Read more
    §

    fn map_err<F>(self, f: F) -> MapErr<Self, F>
    where\n Self: Sized,\n F: Fn(Self::Error) -> Self::Error,

    Map the primary error of this parser to another value. Read more
    §

    fn or_else<F>(self, f: F) -> OrElse<Self, F>
    where\n Self: Sized,\n F: Fn(Self::Error) -> Result<O, Self::Error>,

    Map the primary error of this parser to a result. If the result is Ok, the parser succeeds with that value. Read more
    §

    fn map_err_with_span<F>(self, f: F) -> MapErrWithSpan<Self, F>
    where\n Self: Sized,\n F: Fn(Self::Error, <Self::Error as Error<I>>::Span) -> Self::Error,

    Map the primary error of this parser to another value, making use of the span from the start of the attempted\nto the point at which the error was encountered. Read more
    §

    fn try_map<U, F>(self, f: F) -> TryMap<Self, F, O>
    where\n Self: Sized,\n F: Fn(O, <Self::Error as Error<I>>::Span) -> Result<U, Self::Error>,

    After a successful parse, apply a fallible function to the output. If the function produces an error, treat it\nas a parsing error. Read more
    §

    fn validate<F, U>(self, f: F) -> Validate<Self, O, F>
    where\n Self: Sized,\n F: Fn(O, <Self::Error as Error<I>>::Span, &mut dyn FnMut(Self::Error)) -> U,

    Validate an output, producing non-terminal errors if it does not fulfil certain criteria. Read more
    §

    fn labelled<L>(self, label: L) -> Label<Self, L>
    where\n Self: Sized,\n L: Into<<Self::Error as Error<I>>::Label> + Clone,

    Label the pattern parsed by this parser for more useful error messages. Read more
    §

    fn to<U>(self, x: U) -> To<Self, O, U>
    where\n Self: Sized,\n U: Clone,

    Transform all outputs of this parser to a pretermined value. Read more
    §

    fn foldl<A, B, F>(self, f: F) -> Foldl<Self, F, A, B>
    where\n Self: Sized + Parser<I, (A, B)>,\n B: IntoIterator,\n F: Fn(A, <B as IntoIterator>::Item) -> A,

    Left-fold the output of the parser into a single value. Read more
    §

    fn foldr<'a, A, B, F>(self, f: F) -> Foldr<Self, F, A, B>
    where\n Self: Sized + Parser<I, (A, B)>,\n A: IntoIterator,\n <A as IntoIterator>::IntoIter: DoubleEndedIterator,\n F: Fn(<A as IntoIterator>::Item, B) -> B + 'a,

    Right-fold the output of the parser into a single value. Read more
    §

    fn ignored(self) -> To<Self, O, ()>
    where\n Self: Sized,

    Ignore the output of this parser, yielding () as an output instead. Read more
    §

    fn collect<C>(self) -> Map<Self, fn(O) -> C, O>
    where\n Self: Sized,\n O: IntoIterator,\n C: FromIterator<<O as IntoIterator>::Item>,

    Collect the output of this parser into a type implementing [FromIterator]. Read more
    §

    fn then<U, P>(self, other: P) -> Then<Self, P>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, yielding a tuple of the two outputs. Read more
    §

    fn then_with<U, P, F>(self, other: F) -> ThenWith<I, O, U, Self, P, F>
    where\n F: Fn(O) -> P,\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, creating the second parser from the result of\nthe first. If you only have a couple cases to handle, prefer [Parser::or]. Read more
    §

    fn chain<T, U, P>(\n self,\n other: P,\n) -> Map<Then<Self, P>, fn((O, U)) -> Vec<T>, (O, U)>
    where\n Self: Sized,\n U: Chain<T>,\n O: Chain<T>,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, attempting to chain the two outputs into a Vec. Read more
    §

    fn flatten<T, Inner>(self) -> Map<Self, fn(O) -> Vec<T>, O>
    where\n Self: Sized,\n O: IntoIterator<Item = Inner>,\n Inner: IntoIterator<Item = T>,

    Flatten a nested collection. Read more
    §

    fn ignore_then<U, P>(\n self,\n other: P,\n) -> Map<Then<Self, P>, fn((O, U)) -> U, (O, U)>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, yielding only the output of the latter. Read more
    §

    fn then_ignore<U, P>(\n self,\n other: P,\n) -> Map<Then<Self, P>, fn((O, U)) -> O, (O, U)>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, yielding only the output of the former. Read more
    §

    fn padded_by<U, P>(\n self,\n other: P,\n) -> Map<Then<Map<Then<P, Self>, fn((U, O)) -> O, (U, O)>, P>, fn((O, U)) -> O, (O, U)>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error> + Clone,

    Parse a pattern, but with an instance of another pattern on either end, yielding the output of the inner. Read more
    §

    fn delimited_by<U, V, L, R>(\n self,\n start: L,\n end: R,\n) -> DelimitedBy<Self, L, R, U, V>
    where\n Self: Sized,\n L: Parser<I, U, Error = Self::Error>,\n R: Parser<I, V, Error = Self::Error>,

    Parse the pattern surrounded by the given delimiters. Read more
    §

    fn or<P>(self, other: P) -> Or<Self, P>
    where\n Self: Sized,\n P: Parser<I, O, Error = Self::Error>,

    Parse one thing or, on failure, another thing. Read more
    §

    fn recover_with<S>(self, strategy: S) -> Recovery<Self, S>
    where\n Self: Sized,\n S: Strategy<I, O, Self::Error>,

    Apply a fallback recovery strategy to this parser should it fail. Read more
    §

    fn or_not(self) -> OrNot<Self>
    where\n Self: Sized,

    Attempt to parse something, but only if it exists. Read more
    §

    fn not(self) -> Not<Self, O>
    where\n Self: Sized,

    Parses a single token if, and only if, the pattern fails to parse. Read more
    §

    fn repeated(self) -> Repeated<Self>
    where\n Self: Sized,

    Parse a pattern any number of times (including zero times). Read more
    §

    fn separated_by<U, P>(self, other: P) -> SeparatedBy<Self, P, U>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse a pattern, separated by another, any number of times. Read more
    §

    fn rewind(self) -> Rewind<Self>
    where\n Self: Sized,

    Parse a pattern. Afterwards, the input stream will be rewound to its original state, as if parsing had not\noccurred. Read more
    §

    fn boxed<'a>(self) -> BoxedParser<'a, I, O, Self::Error>
    where\n Self: Sized + 'a,

    Box the parser, yielding a parser that performs parsing through dynamic dispatch. Read more
    §

    fn from_str<U>(self) -> Map<Self, fn(O) -> Result<U, <U as FromStr>::Err>, O>
    where\n Self: Sized,\n U: FromStr,\n O: AsRef<str>,

    Attempt to convert the output of this parser into something else using Rust’s FromStr trait. Read more
    §

    fn unwrapped<U, E>(self) -> Unwrapped<Self, E, Self::Error>
    where\n Self: Sized + Parser<I, Result<U, E>>,\n E: Debug,

    For parsers that produce a Result as their output, unwrap the result (panicking if an Err is\nencountered). Read more
    ","Parser","mcaptcha::db::BoxDB"],["
    §

    impl<P, Input> Parser<Input> for Box<P>
    where\n P: Parser<Input> + ?Sized,\n Input: Stream,

    §

    type Output = <P as Parser<Input>>::Output

    The type which is returned if the parser is successful.
    §

    type PartialState = <P as Parser<Input>>::PartialState

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, error: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input,\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Sized + Parser<Input>,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input,\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Sized + Parser<Input>,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<'a, 's, M>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState,\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Sized + Parser<Input>,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self,\n) -> Box<dyn Parser<Input, PartialState = Self::PartialState, Output = Self::Output> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> PartialEq for Box<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    Source§

    fn eq(&self, other: &Box<T, A>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    Source§

    fn ne(&self, other: &Box<T, A>) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> PartialOrd for Box<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    Source§

    fn partial_cmp(&self, other: &Box<T, A>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    Source§

    fn lt(&self, other: &Box<T, A>) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    Source§

    fn le(&self, other: &Box<T, A>) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    Source§

    fn ge(&self, other: &Box<T, A>) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    Source§

    fn gt(&self, other: &Box<T, A>) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    ","PartialOrd","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Pointer for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Pointer","mcaptcha::db::BoxDB"],["
    §

    impl<B, E, P> Policy<B, E> for Box<P>
    where\n P: Policy<B, E> + ?Sized,

    §

    fn redirect(&mut self, attempt: &Attempt<'_>) -> Result<Action, E>

    Invoked when the service received a response with a redirection status code (3xx). Read more
    §

    fn on_request(&mut self, request: &mut Request<B>)

    Invoked right before the service makes a request, regardless of whether it is redirected\nor not. Read more
    §

    fn clone_body(&self, body: &B) -> Option<B>

    Try to clone a request body before the service makes a redirected request. Read more
    ","Policy","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<R> Read for Box<R>
    where\n R: Read + ?Sized,

    Source§

    fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

    Pull some bytes from this source into the specified buffer, returning\nhow many bytes were read. Read more
    Source§

    fn read_buf(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Pull some bytes from this source into the specified buffer. Read more
    Source§

    fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

    Like read, except that it reads into a slice of buffers. Read more
    Source§

    fn is_read_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Reader has an efficient read_vectored\nimplementation. Read more
    Source§

    fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

    Reads all bytes until EOF in this source, placing them into buf. Read more
    Source§

    fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

    Reads all bytes until EOF in this source, appending them to buf. Read more
    Source§

    fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

    Reads the exact number of bytes required to fill buf. Read more
    Source§

    fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (read_buf)
    Reads the exact number of bytes required to fill cursor. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adaptor for this instance of Read. Read more
    1.0.0 · Source§

    fn bytes(self) -> Bytes<Self>
    where\n Self: Sized,

    Transforms this Read instance to an Iterator over its bytes. Read more
    1.0.0 · Source§

    fn chain<R>(self, next: R) -> Chain<Self, R>
    where\n R: Read,\n Self: Sized,

    Creates an adapter which will chain this stream with another. Read more
    1.0.0 · Source§

    fn take(self, limit: u64) -> Take<Self>
    where\n Self: Sized,

    Creates an adapter which will read at most limit bytes from it. Read more
    ","Read","mcaptcha::db::BoxDB"],["
    §

    impl<T> Read for Box<T>
    where\n T: Read + Unpin + ?Sized,

    §

    fn poll_read(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: ReadBufCursor<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to read bytes into the buf. Read more
    ","Read","mcaptcha::db::BoxDB"],["
    §

    impl<T> Render for Box<T>
    where\n T: Render + ?Sized,

    §

    fn render(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer without escaping
    §

    fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer with HTML escaping
    ","Render","mcaptcha::db::BoxDB"],["
    §

    impl<R> Rng for Box<R>
    where\n R: Rng + ?Sized,

    §

    fn next_u64(&mut self) -> u64

    Generate a random u64.
    §

    fn next_f64(&mut self) -> f64

    Generate a random f64 between [0, 1).
    §

    fn next_range(&mut self, range: Range<u64>) -> u64

    Randomly pick a value within the range. Read more
    ","Rng","mcaptcha::db::BoxDB"],["
    Source§

    impl<R> RngCore for Box<R>
    where\n R: RngCore + ?Sized,

    Source§

    fn next_u32(&mut self) -> u32

    Return the next random u32. Read more
    Source§

    fn next_u64(&mut self) -> u64

    Return the next random u64. Read more
    Source§

    fn fill_bytes(&mut self, dest: &mut [u8])

    Fill dest with random data. Read more
    Source§

    fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>

    Fill dest entirely with random data. Read more
    ","RngCore","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<S> Seek for Box<S>
    where\n S: Seek + ?Sized,

    Source§

    fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>

    Seek to an offset, in bytes, in a stream. Read more
    Source§

    fn rewind(&mut self) -> Result<(), Error>

    Rewind to the beginning of a stream. Read more
    Source§

    fn stream_len(&mut self) -> Result<u64, Error>

    🔬This is a nightly-only experimental API. (seek_stream_len)
    Returns the length of this stream (in bytes). Read more
    Source§

    fn stream_position(&mut self) -> Result<u64, Error>

    Returns the current seek position from the start of the stream. Read more
    Source§

    fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

    Seeks relative to the current position. Read more
    ","Seek","mcaptcha::db::BoxDB"],["
    Source§

    impl<T> Serialize for Box<T>
    where\n T: Serialize + ?Sized,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::db::BoxDB"],["
    Source§

    impl<T> Serializer for Box<T>
    where\n T: Serializer + ?Sized,

    Source§

    fn erased_serialize_bool(&mut self, v: bool)

    Source§

    fn erased_serialize_i8(&mut self, v: i8)

    Source§

    fn erased_serialize_i16(&mut self, v: i16)

    Source§

    fn erased_serialize_i32(&mut self, v: i32)

    Source§

    fn erased_serialize_i64(&mut self, v: i64)

    Source§

    fn erased_serialize_i128(&mut self, v: i128)

    Source§

    fn erased_serialize_u8(&mut self, v: u8)

    Source§

    fn erased_serialize_u16(&mut self, v: u16)

    Source§

    fn erased_serialize_u32(&mut self, v: u32)

    Source§

    fn erased_serialize_u64(&mut self, v: u64)

    Source§

    fn erased_serialize_u128(&mut self, v: u128)

    Source§

    fn erased_serialize_f32(&mut self, v: f32)

    Source§

    fn erased_serialize_f64(&mut self, v: f64)

    Source§

    fn erased_serialize_char(&mut self, v: char)

    Source§

    fn erased_serialize_str(&mut self, v: &str)

    Source§

    fn erased_serialize_bytes(&mut self, v: &[u8])

    Source§

    fn erased_serialize_none(&mut self)

    Source§

    fn erased_serialize_some(&mut self, value: &dyn Serialize)

    Source§

    fn erased_serialize_unit(&mut self)

    Source§

    fn erased_serialize_unit_struct(&mut self, name: &'static str)

    Source§

    fn erased_serialize_unit_variant(\n &mut self,\n name: &'static str,\n variant_index: u32,\n variant: &'static str,\n)

    Source§

    fn erased_serialize_newtype_struct(\n &mut self,\n name: &'static str,\n value: &dyn Serialize,\n)

    Source§

    fn erased_serialize_newtype_variant(\n &mut self,\n name: &'static str,\n variant_index: u32,\n variant: &'static str,\n value: &dyn Serialize,\n)

    Source§

    fn erased_serialize_seq(\n &mut self,\n len: Option<usize>,\n) -> Result<&mut dyn SerializeSeq, ErrorImpl>

    Source§

    fn erased_serialize_tuple(\n &mut self,\n len: usize,\n) -> Result<&mut dyn SerializeTuple, ErrorImpl>

    Source§

    fn erased_serialize_tuple_struct(\n &mut self,\n name: &'static str,\n len: usize,\n) -> Result<&mut dyn SerializeTupleStruct, ErrorImpl>

    Source§

    fn erased_serialize_tuple_variant(\n &mut self,\n name: &'static str,\n variant_index: u32,\n variant: &'static str,\n len: usize,\n) -> Result<&mut dyn SerializeTupleVariant, ErrorImpl>

    Source§

    fn erased_serialize_map(\n &mut self,\n len: Option<usize>,\n) -> Result<&mut dyn SerializeMap, ErrorImpl>

    Source§

    fn erased_serialize_struct(\n &mut self,\n name: &'static str,\n len: usize,\n) -> Result<&mut dyn SerializeStruct, ErrorImpl>

    Source§

    fn erased_serialize_struct_variant(\n &mut self,\n name: &'static str,\n variant_index: u32,\n variant: &'static str,\n len: usize,\n) -> Result<&mut dyn SerializeStructVariant, ErrorImpl>

    Source§

    fn erased_is_human_readable(&self) -> bool

    ","Serializer","mcaptcha::db::BoxDB"],["
    §

    impl<S, Req> Service<Req> for Box<S>
    where\n S: Service<Req> + ?Sized,

    §

    type Response = <S as Service<Req>>::Response

    Responses given by the service.
    §

    type Error = <S as Service<Req>>::Error

    Errors produced by the service when polling readiness or executing call.
    §

    type Future = <S as Service<Req>>::Future

    The future response value.
    §

    fn poll_ready(\n &self,\n ctx: &mut Context<'_>,\n) -> Poll<Result<(), <S as Service<Req>>::Error>>

    Returns Ready when the service is able to process requests. Read more
    §

    fn call(&self, request: Req) -> <S as Service<Req>>::Future

    Process the request and return the response asynchronously. Read more
    ","Service","mcaptcha::db::BoxDB"],["
    §

    impl<Request, S> Service<Request> for Box<S>
    where\n S: Service<Request> + ?Sized,

    §

    type Response = <S as Service<Request>>::Response

    Responses given by the service.
    §

    type Error = <S as Service<Request>>::Error

    Errors produced by the service. Read more
    §

    type Future = <S as Service<Request>>::Future

    The future response value.
    §

    fn call(&self, req: Request) -> <Box<S> as Service<Request>>::Future

    Process the request and return the response asynchronously.\ncall takes &self instead of mut &self because: Read more
    ","Service","mcaptcha::db::BoxDB"],["
    §

    impl<S, Request> Service<Request> for Box<S>
    where\n S: Service<Request> + ?Sized,

    §

    type Response = <S as Service<Request>>::Response

    Responses given by the service.
    §

    type Error = <S as Service<Request>>::Error

    Errors produced by the service.
    §

    type Future = <S as Service<Request>>::Future

    The future response value.
    §

    fn poll_ready(\n &mut self,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <S as Service<Request>>::Error>>

    Returns Poll::Ready(Ok(())) when the service is able to process requests. Read more
    §

    fn call(&mut self, request: Request) -> <S as Service<Request>>::Future

    Process the request and return the response asynchronously. Read more
    ","Service","mcaptcha::db::BoxDB"],["
    §

    impl<S, Item> Sink<Item> for Box<S>
    where\n S: Sink<Item> + Unpin + ?Sized,

    §

    type Error = <S as Sink<Item>>::Error

    The type of value produced by the sink when an error occurs.
    §

    fn poll_ready(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Attempts to prepare the Sink to receive a value. Read more
    §

    fn start_send(\n self: Pin<&mut Box<S>>,\n item: Item,\n) -> Result<(), <Box<S> as Sink<Item>>::Error>

    Begin the process of sending a value to the sink.\nEach call to this function must be preceded by a successful call to\npoll_ready which returned Poll::Ready(Ok(())). Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output from this sink. Read more
    §

    fn poll_close(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), <Box<S> as Sink<Item>>::Error>>

    Flush any remaining output and close this sink, if necessary. Read more
    ","Sink","mcaptcha::db::BoxDB"],["
    §

    impl<S> Socket for Box<S>
    where\n S: Socket + ?Sized,

    §

    fn try_read(&mut self, buf: &mut dyn ReadBuf) -> Result<usize, Error>

    §

    fn try_write(&mut self, buf: &[u8]) -> Result<usize, Error>

    §

    fn poll_read_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_write_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn poll_shutdown(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>

    §

    fn read<'a, B>(&'a mut self, buf: &'a mut B) -> Read<'a, Self, B>
    where\n B: ReadBuf,\n Self: Sized,

    §

    fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>
    where\n Self: Sized,

    §

    fn flush(&mut self) -> Flush<'_, Self>
    where\n Self: Sized,

    §

    fn shutdown(&mut self) -> Shutdown<'_, Self>
    where\n Self: Sized,

    ","Socket","mcaptcha::db::BoxDB"],["
    §

    impl<T> Source for Box<T>
    where\n T: Source + ?Sized,

    §

    fn register(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Register self with the given Registry instance. Read more
    §

    fn reregister(\n &mut self,\n registry: &Registry,\n token: Token,\n interests: Interest,\n) -> Result<(), Error>

    Re-register self with the given Registry instance. Read more
    §

    fn deregister(&mut self, registry: &Registry) -> Result<(), Error>

    Deregister self from the given Registry instance. Read more
    ","Source","mcaptcha::db::BoxDB"],["
    §

    impl<Sp> Spawn for Box<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","mcaptcha::db::BoxDB"],["
    §

    impl<S> Stream for Box<S>
    where\n S: Stream + Unpin + ?Sized,

    §

    type Item = <S as Stream>::Item

    Values yielded by the stream.
    §

    fn poll_next(\n self: Pin<&mut Box<S>>,\n cx: &mut Context<'_>,\n) -> Poll<Option<<Box<S> as Stream>::Item>>

    Attempt to pull out the next value of this stream, registering the\ncurrent task for wakeup if the value is not yet available, and returning\nNone if the stream is exhausted. Read more
    §

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the stream. Read more
    ","Stream","mcaptcha::db::BoxDB"],["
    §

    impl<S> Subscriber for Box<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","mcaptcha::db::BoxDB"],["
    §

    impl<'a, T, F> UnsafeFutureObj<'a, T> for Box<F>
    where\n F: Future<Output = T> + 'a,

    §

    fn into_raw(self) -> *mut dyn Future<Output = T> + 'a

    Convert an owned instance into a (conceptually owned) fat pointer. Read more
    §

    unsafe fn drop(ptr: *mut dyn Future<Output = T> + 'a)

    Drops the future represented by the given fat pointer. Read more
    ","UnsafeFutureObj<'a, T>","mcaptcha::db::BoxDB"],["
    §

    impl<T> ValidateLength<u64> for Box<T>
    where\n T: ValidateLength<u64>,

    §

    fn length(&self) -> Option<u64>

    §

    fn validate_length(\n &self,\n min: Option<T>,\n max: Option<T>,\n equal: Option<T>,\n) -> bool

    ","ValidateLength","mcaptcha::db::BoxDB"],["
    §

    impl<T> ValidateRegex for Box<T>
    where\n T: ValidateRegex,

    §

    fn validate_regex(&self, regex: impl AsRegex) -> bool

    ","ValidateRegex","mcaptcha::db::BoxDB"],["
    §

    impl<T> ValidateUrl for Box<T>
    where\n T: ValidateUrl,

    §

    fn as_url_string(&self) -> Option<Cow<'_, str>>

    §

    fn validate_url(&self) -> bool

    ","ValidateUrl","mcaptcha::db::BoxDB"],["
    §

    impl<T> Value for Box<T>
    where\n T: Value + ?Sized,

    §

    fn record(&self, key: &Field, visitor: &mut dyn Visit)

    Visits this value with the given Visitor.
    ","Value","mcaptcha::db::BoxDB"],["
    §

    impl<T> Write for Box<T>
    where\n T: Write + Unpin + ?Sized,

    §

    fn poll_write(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n buf: &[u8],\n) -> Poll<Result<usize, Error>>

    Attempt to write bytes from buf into the destination. Read more
    §

    fn poll_write_vectored(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n bufs: &[IoSlice<'_>],\n) -> Poll<Result<usize, Error>>

    Like poll_write, except that it writes from a slice of buffers.
    §

    fn is_write_vectored(&self) -> bool

    Returns whether this writer has an efficient poll_write_vectored\nimplementation. Read more
    §

    fn poll_flush(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to flush the object. Read more
    §

    fn poll_shutdown(\n self: Pin<&mut Box<T>>,\n cx: &mut Context<'_>,\n) -> Poll<Result<(), Error>>

    Attempts to shut down this writer.
    ","Write","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<W> Write for Box<W>
    where\n W: Write + ?Sized,

    Source§

    fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

    Writes a buffer into this writer, returning how many bytes were written. Read more
    Source§

    fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

    Like write, except that it writes from a slice of buffers. Read more
    Source§

    fn is_write_vectored(&self) -> bool

    🔬This is a nightly-only experimental API. (can_vector)
    Determines if this Writer has an efficient write_vectored\nimplementation. Read more
    Source§

    fn flush(&mut self) -> Result<(), Error>

    Flushes this output stream, ensuring that all intermediately buffered\ncontents reach their destination. Read more
    Source§

    fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

    Attempts to write an entire buffer into this writer. Read more
    Source§

    fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

    🔬This is a nightly-only experimental API. (write_all_vectored)
    Attempts to write multiple buffers into this writer. Read more
    Source§

    fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

    Writes a formatted string into this writer, returning any error\nencountered. Read more
    1.0.0 · Source§

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Creates a “by reference” adapter for this instance of Write. Read more
    ","Write","mcaptcha::db::BoxDB"],["
    §

    impl<T> WriteColor for Box<T>
    where\n T: WriteColor + ?Sized,

    §

    fn supports_color(&self) -> bool

    Returns true if and only if the underlying writer supports colors.
    §

    fn supports_hyperlinks(&self) -> bool

    Returns true if and only if the underlying writer supports hyperlinks. Read more
    §

    fn set_color(&mut self, spec: &ColorSpec) -> Result<(), Error>

    Set the color settings of the writer. Read more
    §

    fn set_hyperlink(&mut self, link: &HyperlinkSpec<'_>) -> Result<(), Error>

    Set the current hyperlink of the writer. Read more
    §

    fn reset(&mut self) -> Result<(), Error>

    Reset the current color settings to their original settings. Read more
    §

    fn is_synchronous(&self) -> bool

    Returns true if and only if the underlying writer must synchronously\ninteract with an end user’s device in order to control colors. By\ndefault, this always returns false. Read more
    ","WriteColor","mcaptcha::db::BoxDB"],["
    §

    impl<'a, T> Writeable for Box<T>
    where\n T: Writeable + ?Sized,

    §

    fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: Write + ?Sized,

    Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
    §

    fn write_to_parts<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: PartsWrite + ?Sized,

    Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn write_to_string(&self) -> Cow<'_, str>

    Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
    ","Writeable","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Deref for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    type Target = T

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","mcaptcha::db::BoxDB"],["
    §

    impl<T> CartablePointerLike for Box<T>

    ","CartablePointerLike","mcaptcha::db::BoxDB"],["
    Source§

    impl<T, U, A> CoerceUnsized<Box<U, A>> for Box<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","mcaptcha::db::BoxDB"],["
    Source§

    impl<R> CryptoRng for Box<R>
    where\n R: CryptoRng + ?Sized,

    ","CryptoRng","mcaptcha::db::BoxDB"],["
    Source§

    impl<T, A> DerefPure for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","DerefPure","mcaptcha::db::BoxDB"],["
    Source§

    impl<T, U> DispatchFromDyn<Box<U>> for Box<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","mcaptcha::db::BoxDB"],["
    1.0.0 · Source§

    impl<T, A> Eq for Box<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","mcaptcha::db::BoxDB"],["
    1.26.0 · Source§

    impl<I, A> FusedIterator for Box<I, A>
    where\n I: FusedIterator + ?Sized,\n A: Allocator,

    ","FusedIterator","mcaptcha::db::BoxDB"],["
    Source§

    impl<T, A> PinCoerceUnsized for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","PinCoerceUnsized","mcaptcha::db::BoxDB"],["
    §

    impl<'a, T> Sequence<'a> for Box<T>
    where\n T: Sequence<'a>,

    ","Sequence<'a>","mcaptcha::db::BoxDB"],["
    §

    impl<T> StableDeref for Box<T>
    where\n T: ?Sized,

    ","StableDeref","mcaptcha::db::BoxDB"],["
    1.33.0 · Source§

    impl<T, A> Unpin for Box<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","mcaptcha::db::BoxDB"]]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[588858,611120,611414,724472]} \ No newline at end of file diff --git a/type.impl/alloc/sync/struct.Arc.js b/type.impl/alloc/sync/struct.Arc.js index fe75298b..ff5e085e 100644 --- a/type.impl/alloc/sync/struct.Arc.js +++ b/type.impl/alloc/sync/struct.Arc.js @@ -1,3 +1,9 @@ -(function() {var type_impls = { -"mcaptcha":[["
    source§

    impl<T> Arc<T>

    1.0.0 · source

    pub fn new(data: T) -> Arc<T>

    Constructs a new Arc<T>.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);
    \n
    1.60.0 · source

    pub fn new_cyclic<F>(data_fn: F) -> Arc<T>
    where\n F: FnOnce(&Weak<T>) -> T,

    Constructs a new Arc<T> while giving you a Weak<T> to the allocation,\nto allow you to construct a T which holds a weak pointer to itself.

    \n

    Generally, a structure circularly referencing itself, either directly or\nindirectly, should not hold a strong reference to itself to prevent a memory leak.\nUsing this function, you get access to the weak pointer during the\ninitialization of T, before the Arc<T> is created, such that you can\nclone and store it inside the T.

    \n

    new_cyclic first allocates the managed allocation for the Arc<T>,\nthen calls your closure, giving it a Weak<T> to this allocation,\nand only afterwards completes the construction of the Arc<T> by placing\nthe T returned from your closure into the allocation.

    \n

    Since the new Arc<T> is not fully-constructed until Arc<T>::new_cyclic\nreturns, calling upgrade on the weak reference inside your closure will\nfail and result in a None value.

    \n
    §Panics
    \n

    If data_fn panics, the panic is propagated to the caller, and the\ntemporary Weak<T> is dropped normally.

    \n
    §Example
    \n
    use std::sync::{Arc, Weak};\n\nstruct Gadget {\n    me: Weak<Gadget>,\n}\n\nimpl Gadget {\n    /// Construct a reference counted Gadget.\n    fn new() -> Arc<Self> {\n        // `me` is a `Weak<Gadget>` pointing at the new allocation of the\n        // `Arc` we're constructing.\n        Arc::new_cyclic(|me| {\n            // Create the actual struct here.\n            Gadget { me: me.clone() }\n        })\n    }\n\n    /// Return a reference counted pointer to Self.\n    fn me(&self) -> Arc<Self> {\n        self.me.upgrade().unwrap()\n    }\n}
    \n
    source

    pub fn new_uninit() -> Arc<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Arc with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::new_uninit();\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed() -> Arc<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · source

    pub fn pin(data: T) -> Pin<Arc<T>>

    Constructs a new Pin<Arc<T>>. If T does not implement Unpin, then\ndata will be pinned in memory and unable to be moved.

    \n
    source

    pub fn try_pin(data: T) -> Result<Pin<Arc<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T>>, return an error if allocation fails.

    \n
    source

    pub fn try_new(data: T) -> Result<Arc<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T>, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\nuse std::sync::Arc;\n\nlet five = Arc::try_new(5)?;
    \n
    source

    pub fn try_new_uninit() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, returning an error\nif allocation fails.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::try_new_uninit()?;\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, returning an error if allocation fails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"mcaptcha::ArcData"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,

    source

    pub fn allocator(this: &Arc<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Arc::allocator(&a) instead of a.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    source

    pub fn new_in(data: T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T> in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);
    \n
    source

    pub fn new_uninit_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(get_mut_unchecked)]\n#![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    source

    pub fn pin_in(data: T, alloc: A) -> Pin<Arc<T, A>>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator. If T does not implement Unpin,\nthen data will be pinned in memory and unable to be moved.

    \n
    source

    pub fn try_pin_in(data: T, alloc: A) -> Result<Pin<Arc<T, A>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator, return an error if allocation\nfails.

    \n
    source

    pub fn try_new_in(data: T, alloc: A) -> Result<Arc<T, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T, A> in the provided allocator, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::try_new_in(5, System)?;
    \n
    source

    pub fn try_new_uninit_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, in the provided allocator, returning an\nerror if allocation fails.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator, returning an error if allocation\nfails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    1.4.0 · source

    pub fn try_unwrap(this: Arc<T, A>) -> Result<T, Arc<T, A>>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, an Err is returned with the same Arc that was\npassed in.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    It is strongly recommended to use Arc::into_inner instead if you don’t\nwant to keep the Arc in the Err case.\nImmediately dropping the Err payload, like in the expression\nArc::try_unwrap(this).ok(), can still cause the strong count to\ndrop to zero and the inner value of the Arc to be dropped:\nFor instance if two threads each execute this expression in parallel, then\nthere is a race condition. The threads could first both check whether they\nhave the last clone of their Arc via Arc::try_unwrap, and then\nboth drop their Arc in the call to ok,\ntaking the strong count from two down to zero.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nassert_eq!(Arc::try_unwrap(x), Ok(3));\n\nlet x = Arc::new(4);\nlet _y = Arc::clone(&x);\nassert_eq!(*Arc::try_unwrap(x).unwrap_err(), 4);
    \n
    1.70.0 · source

    pub fn into_inner(this: Arc<T, A>) -> Option<T>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, None is returned and the Arc is dropped.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    If Arc::into_inner is called on every clone of this Arc,\nit is guaranteed that exactly one of the calls returns the inner value.\nThis means in particular that the inner value is not dropped.

    \n

    Arc::try_unwrap is conceptually similar to Arc::into_inner, but it\nis meant for different use-cases. If used as a direct replacement\nfor Arc::into_inner anyway, such as with the expression\nArc::try_unwrap(this).ok(), then it does\nnot give the same guarantee as described in the previous paragraph.\nFor more information, see the examples below and read the documentation\nof Arc::try_unwrap.

    \n
    §Examples
    \n

    Minimal example demonstrating the guarantee that Arc::into_inner gives.

    \n\n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nlet y = Arc::clone(&x);\n\n// Two threads calling `Arc::into_inner` on both clones of an `Arc`:\nlet x_thread = std::thread::spawn(|| Arc::into_inner(x));\nlet y_thread = std::thread::spawn(|| Arc::into_inner(y));\n\nlet x_inner_value = x_thread.join().unwrap();\nlet y_inner_value = y_thread.join().unwrap();\n\n// One of the threads is guaranteed to receive the inner value:\nassert!(matches!(\n    (x_inner_value, y_inner_value),\n    (None, Some(3)) | (Some(3), None)\n));\n// The result could also be `(None, None)` if the threads called\n// `Arc::try_unwrap(x).ok()` and `Arc::try_unwrap(y).ok()` instead.
    \n

    A more practical example demonstrating the need for Arc::into_inner:

    \n\n
    use std::sync::Arc;\n\n// Definition of a simple singly linked list using `Arc`:\n#[derive(Clone)]\nstruct LinkedList<T>(Option<Arc<Node<T>>>);\nstruct Node<T>(T, Option<Arc<Node<T>>>);\n\n// Dropping a long `LinkedList<T>` relying on the destructor of `Arc`\n// can cause a stack overflow. To prevent this, we can provide a\n// manual `Drop` implementation that does the destruction in a loop:\nimpl<T> Drop for LinkedList<T> {\n    fn drop(&mut self) {\n        let mut link = self.0.take();\n        while let Some(arc_node) = link.take() {\n            if let Some(Node(_value, next)) = Arc::into_inner(arc_node) {\n                link = next;\n            }\n        }\n    }\n}\n\n// Implementation of `new` and `push` omitted\nimpl<T> LinkedList<T> {\n    /* ... */\n}\n\n// The following code could have still caused a stack overflow\n// despite the manual `Drop` impl if that `Drop` impl had used\n// `Arc::try_unwrap(arc).ok()` instead of `Arc::into_inner(arc)`.\n\n// Create a long list and clone it\nlet mut x = LinkedList::new();\nfor i in 0..100000 {\n    x.push(i); // Adds i to the front of x\n}\nlet y = x.clone();\n\n// Drop the clones in parallel\nlet x_thread = std::thread::spawn(|| drop(x));\nlet y_thread = std::thread::spawn(|| drop(y));\nx_thread.join().unwrap();\ny_thread.join().unwrap();
    \n
    ",0,"mcaptcha::ArcData"],["
    source§

    impl<T> Arc<T>
    where\n T: ?Sized,

    1.17.0 · source

    pub unsafe fn from_raw(ptr: *const T) -> Arc<T>

    Constructs an Arc<T> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to\nArc<U>::into_raw where U must have the same size and\nalignment as T. This is trivially true if U is T.\nNote that if U is not T but has the same size and alignment, this is\nbasically like transmuting references of different types. See\nmem::transmute for more information on what\nrestrictions apply in this case.

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw(x_ptr);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n
    1.51.0 · source

    pub unsafe fn increment_strong_count(ptr: *const T)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    1.51.0 · source

    pub unsafe fn decrement_strong_count(ptr: *const T)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count(ptr);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    ",0,"mcaptcha::ArcData"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    1.17.0 · source

    pub fn into_raw(this: Arc<T, A>) -> *const T

    Consumes the Arc, returning the wrapped pointer.

    \n

    To avoid a memory leak the pointer must be converted back to an Arc using\nArc::from_raw.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    1.45.0 · source

    pub fn as_ptr(this: &Arc<T, A>) -> *const T

    Provides a raw pointer to the data.

    \n

    The counts are not affected in any way and the Arc is not consumed. The pointer is valid for\nas long as there are strong counts in the Arc.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet y = Arc::clone(&x);\nlet x_ptr = Arc::as_ptr(&x);\nassert_eq!(x_ptr, Arc::as_ptr(&y));\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    source

    pub unsafe fn from_raw_in(ptr: *const T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs an Arc<T, A> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to\nArc<U, A>::into_raw where U must have the same size and\nalignment as T. This is trivially true if U is T.\nNote that if U is not T but has the same size and alignment, this is\nbasically like transmuting references of different types. See\nmem::transmute for more information on what\nrestrictions apply in this case.

    \n

    The raw pointer must point to a block of memory allocated by alloc

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x = Arc::new_in(\"hello\".to_owned(), System);\nlet x_ptr = Arc::into_raw(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw_in(x_ptr, System);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n
    1.4.0 · source

    pub fn downgrade(this: &Arc<T, A>) -> Weak<T, A>
    where\n A: Clone,

    Creates a new Weak pointer to this allocation.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet weak_five = Arc::downgrade(&five);
    \n
    1.15.0 · source

    pub fn weak_count(this: &Arc<T, A>) -> usize

    Gets the number of Weak pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the weak count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _weak_five = Arc::downgrade(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` or `Weak` between threads.\nassert_eq!(1, Arc::weak_count(&five));
    \n
    1.15.0 · source

    pub fn strong_count(this: &Arc<T, A>) -> usize

    Gets the number of strong (Arc) pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the strong count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _also_five = Arc::clone(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` between threads.\nassert_eq!(2, Arc::strong_count(&five));
    \n
    source

    pub unsafe fn increment_strong_count_in(ptr: *const T, alloc: A)
    where\n A: Clone,

    🔬This is a nightly-only experimental API. (allocator_api)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method,, and ptr must point to a block of memory\nallocated by alloc.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    source

    pub unsafe fn decrement_strong_count_in(ptr: *const T, alloc: A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method, and ptr must point to a block of memory\nallocated by alloc. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count_in(ptr, System);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    1.17.0 · source

    pub fn ptr_eq(this: &Arc<T, A>, other: &Arc<T, A>) -> bool

    Returns true if the two Arcs point to the same allocation in a vein similar to\nptr::eq. This function ignores the metadata of dyn Trait pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet same_five = Arc::clone(&five);\nlet other_five = Arc::new(5);\n\nassert!(Arc::ptr_eq(&five, &same_five));\nassert!(!Arc::ptr_eq(&five, &other_five));
    \n
    ",0,"mcaptcha::ArcData"],["
    source§

    impl<T, A> Arc<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    1.4.0 · source

    pub fn make_mut(this: &mut Arc<T, A>) -> &mut T

    Makes a mutable reference into the given Arc.

    \n

    If there are other Arc pointers to the same allocation, then make_mut will\nclone the inner value to a new allocation to ensure unique ownership. This is also\nreferred to as clone-on-write.

    \n

    However, if there are no other Arc pointers to this allocation, but some Weak\npointers, then the Weak pointers will be dissociated and the inner value will not\nbe cloned.

    \n

    See also get_mut, which will fail rather than cloning the inner value\nor dissociating Weak pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut data = Arc::new(5);\n\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\nlet mut other_data = Arc::clone(&data); // Won't clone inner data\n*Arc::make_mut(&mut data) += 1;         // Clones inner data\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\n*Arc::make_mut(&mut other_data) *= 2;   // Won't clone anything\n\n// Now `data` and `other_data` point to different allocations.\nassert_eq!(*data, 8);\nassert_eq!(*other_data, 12);
    \n

    Weak pointers will be dissociated:

    \n\n
    use std::sync::Arc;\n\nlet mut data = Arc::new(75);\nlet weak = Arc::downgrade(&data);\n\nassert!(75 == *data);\nassert!(75 == *weak.upgrade().unwrap());\n\n*Arc::make_mut(&mut data) += 1;\n\nassert!(76 == *data);\nassert!(weak.upgrade().is_none());
    \n
    1.76.0 · source

    pub fn unwrap_or_clone(this: Arc<T, A>) -> T

    If we have the only reference to T then unwrap it. Otherwise, clone T and return the\nclone.

    \n

    Assuming arc_t is of type Arc<T>, this function is functionally equivalent to\n(*arc_t).clone(), but will avoid cloning the inner value where possible.

    \n
    §Examples
    \n
    let inner = String::from(\"test\");\nlet ptr = inner.as_ptr();\n\nlet arc = Arc::new(inner);\nlet inner = Arc::unwrap_or_clone(arc);\n// The inner value was not cloned\nassert!(ptr::eq(ptr, inner.as_ptr()));\n\nlet arc = Arc::new(inner);\nlet arc2 = arc.clone();\nlet inner = Arc::unwrap_or_clone(arc);\n// Because there were 2 references, we had to clone the inner value.\nassert!(!ptr::eq(ptr, inner.as_ptr()));\n// `arc2` is the last reference, so when we unwrap it we get back\n// the original `String`.\nlet inner = Arc::unwrap_or_clone(arc2);\nassert!(ptr::eq(ptr, inner.as_ptr()));
    \n
    ",0,"mcaptcha::ArcData"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    1.4.0 · source

    pub fn get_mut(this: &mut Arc<T, A>) -> Option<&mut T>

    Returns a mutable reference into the given Arc, if there are\nno other Arc or Weak pointers to the same allocation.

    \n

    Returns None otherwise, because it is not safe to\nmutate a shared value.

    \n

    See also make_mut, which will clone\nthe inner value when there are other Arc pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut x = Arc::new(3);\n*Arc::get_mut(&mut x).unwrap() = 4;\nassert_eq!(*x, 4);\n\nlet _y = Arc::clone(&x);\nassert!(Arc::get_mut(&mut x).is_none());
    \n
    source

    pub unsafe fn get_mut_unchecked(this: &mut Arc<T, A>) -> &mut T

    🔬This is a nightly-only experimental API. (get_mut_unchecked)

    Returns a mutable reference into the given Arc,\nwithout any check.

    \n

    See also get_mut, which is safe and does appropriate checks.

    \n
    §Safety
    \n

    If any other Arc or Weak pointers to the same allocation exist, then\nthey must not be dereferenced or have active borrows for the duration\nof the returned borrow, and their inner type must be exactly the same as the\ninner type of this Rc (including lifetimes). This is trivially the case if no\nsuch pointers exist, for example immediately after Arc::new.

    \n
    §Examples
    \n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut x = Arc::new(String::new());\nunsafe {\n    Arc::get_mut_unchecked(&mut x).push_str(\"foo\")\n}\nassert_eq!(*x, \"foo\");
    \n

    Other Arc pointers to the same allocation must be to the same type.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<str> = Arc::from(\"Hello, world!\");\nlet mut y: Arc<[u8]> = x.clone().into();\nunsafe {\n    // this is Undefined Behavior, because x's inner type is str, not [u8]\n    Arc::get_mut_unchecked(&mut y).fill(0xff); // 0xff is invalid in UTF-8\n}\nprintln!(\"{}\", &*x); // Invalid UTF-8 in a str
    \n

    Other Arc pointers to the same allocation must be to the exact same type, including lifetimes.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<&str> = Arc::new(\"Hello, world!\");\n{\n    let s = String::from(\"Oh, no!\");\n    let mut y: Arc<&str> = x.clone().into();\n    unsafe {\n        // this is Undefined Behavior, because x's inner type\n        // is &'long str, not &'short str\n        *Arc::get_mut_unchecked(&mut y) = &s;\n    }\n}\nprintln!(\"{}\", &*x); // Use-after-free
    \n
    ",0,"mcaptcha::ArcData"],["
    1.64.0 · source§

    impl<T> AsFd for Arc<T>
    where\n T: AsFd,

    This impl allows implementing traits that require AsFd on Arc.

    \n\n
    use std::net::UdpSocket;\nuse std::sync::Arc;\n\ntrait MyTrait: AsFd {}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","mcaptcha::ArcData"],["
    1.63.0 · source§

    impl<T> AsRawFd for Arc<T>
    where\n T: AsRawFd,

    This impl allows implementing traits that require AsRawFd on Arc.

    \n\n
    use std::net::UdpSocket;\nuse std::sync::Arc;\ntrait MyTrait: AsRawFd {\n}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Clone for Arc<T, A>
    where\n A: Allocator + Clone,\n T: ?Sized,

    source§

    fn clone(&self) -> Arc<T, A>

    Makes a clone of the Arc pointer.

    \n

    This creates another pointer to the same allocation, increasing the\nstrong reference count.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet _ = Arc::clone(&five);
    \n
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::ArcData"],["
    1.33.0 · source§

    impl<T, A> Unpin for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Ord for Arc<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    source§

    fn cmp(&self, other: &Arc<T, A>) -> Ordering

    Comparison for two Arcs.

    \n

    The two are compared by calling cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Ordering::Less, five.cmp(&Arc::new(6)));
    \n
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Sync for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Sync,

    ","Sync","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Drop for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn drop(&mut self)

    Drops the Arc.

    \n

    This will decrement the strong reference count. If the strong reference\ncount reaches zero then the only other references (if any) are\nWeak, so we drop the inner value.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nstruct Foo;\n\nimpl Drop for Foo {\n    fn drop(&mut self) {\n        println!(\"dropped!\");\n    }\n}\n\nlet foo  = Arc::new(Foo);\nlet foo2 = Arc::clone(&foo);\n\ndrop(foo);    // Doesn't print anything\ndrop(foo2);   // Prints \"dropped!\"
    \n
    ","Drop","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Debug for Arc<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> PartialOrd for Arc<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    source§

    fn partial_cmp(&self, other: &Arc<T, A>) -> Option<Ordering>

    Partial comparison for two Arcs.

    \n

    The two are compared by calling partial_cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Some(Ordering::Less), five.partial_cmp(&Arc::new(6)));
    \n
    source§

    fn lt(&self, other: &Arc<T, A>) -> bool

    Less-than comparison for two Arcs.

    \n

    The two are compared by calling < on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five < Arc::new(6));
    \n
    source§

    fn le(&self, other: &Arc<T, A>) -> bool

    ‘Less than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling <= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five <= Arc::new(5));
    \n
    source§

    fn gt(&self, other: &Arc<T, A>) -> bool

    Greater-than comparison for two Arcs.

    \n

    The two are compared by calling > on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five > Arc::new(4));
    \n
    source§

    fn ge(&self, other: &Arc<T, A>) -> bool

    ‘Greater than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling >= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five >= Arc::new(5));
    \n
    ","PartialOrd","mcaptcha::ArcData"],["
    1.52.0 · source§

    impl<T> Error for Arc<T>
    where\n T: Error + ?Sized,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    source§

    fn provide<'a>(&'a self, req: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    ","Error","mcaptcha::ArcData"],["
    1.45.0 · source§

    impl<'a, B> From<Cow<'a, B>> for Arc<B>
    where\n B: ToOwned + ?Sized,\n Arc<B>: From<&'a B> + From<<B as ToOwned>::Owned>,

    source§

    fn from(cow: Cow<'a, B>) -> Arc<B>

    Create an atomically reference-counted pointer from\na clone-on-write pointer by copying its content.

    \n
    §Example
    \n
    let cow: Cow<'_, str> = Cow::Borrowed(\"eggplant\");\nlet shared: Arc<str> = Arc::from(cow);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","mcaptcha::ArcData"],["
    1.6.0 · source§

    impl<T> From<T> for Arc<T>

    source§

    fn from(t: T) -> Arc<T>

    Converts a T into an Arc<T>

    \n

    The conversion moves the value into a\nnewly allocated Arc. It is equivalent to\ncalling Arc::new(t).

    \n
    §Example
    \n
    let x = 5;\nlet arc = Arc::new(5);\n\nassert_eq!(Arc::from(x), arc);
    \n
    ","From","mcaptcha::ArcData"],["
    1.21.0 · source§

    impl<T, A> From<Box<T, A>> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn from(v: Box<T, A>) -> Arc<T, A>

    Move a boxed object to a new, reference-counted allocation.

    \n
    §Example
    \n
    let unique: Box<str> = Box::from(\"eggplant\");\nlet shared: Arc<str> = Arc::from(unique);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Deref for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Display for Arc<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Eq for Arc<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T> Default for Arc<T>
    where\n T: Default,

    source§

    fn default() -> Arc<T>

    Creates a new Arc<T>, with the Default value for T.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x: Arc<i32> = Default::default();\nassert_eq!(*x, 0);
    \n
    ","Default","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Borrow<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Send for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Send,

    ","Send","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> PartialEq for Arc<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    source§

    fn eq(&self, other: &Arc<T, A>) -> bool

    Equality for two Arcs.

    \n

    Two Arcs are equal if their inner values are equal, even if they are\nstored in different allocation.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same allocation are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five == Arc::new(5));
    \n
    source§

    fn ne(&self, other: &Arc<T, A>) -> bool

    Inequality for two Arcs.

    \n

    Two Arcs are not equal if their inner values are not equal.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same value are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five != Arc::new(6));
    \n
    ","PartialEq","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Pointer for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter.
    ","Pointer","mcaptcha::ArcData"],["
    1.5.0 · source§

    impl<T, A> AsRef<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","mcaptcha::ArcData"],["
    source§

    impl<T, U> DispatchFromDyn<Arc<U>> for Arc<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","mcaptcha::ArcData"],["
    1.0.0 · source§

    impl<T, A> Hash for Arc<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","mcaptcha::ArcData"],["
    1.9.0 · source§

    impl<T, A> UnwindSafe for Arc<T, A>
    where\n T: RefUnwindSafe + ?Sized,\n A: Allocator + UnwindSafe,

    ","UnwindSafe","mcaptcha::ArcData"],["
    source§

    impl<T, U, A> CoerceUnsized<Arc<U, A>> for Arc<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","mcaptcha::ArcData"],["
    source§

    impl<T> Log for Arc<T>
    where\n T: Log + ?Sized,

    source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    source§

    fn flush(&self)

    Flushes any buffered records.
    ","Log","mcaptcha::ArcData"],["
    §

    impl<S> Subscriber for Arc<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","mcaptcha::ArcData"],["
    §

    impl<S, Req> ServiceFactory<Req> for Arc<S>
    where\n S: ServiceFactory<Req>,

    §

    type Response = <S as ServiceFactory<Req>>::Response

    Responses given by the created services.
    §

    type Error = <S as ServiceFactory<Req>>::Error

    Errors produced by the created services.
    §

    type Config = <S as ServiceFactory<Req>>::Config

    Service factory configuration.
    §

    type Service = <S as ServiceFactory<Req>>::Service

    The kind of Service created by this factory.
    §

    type InitError = <S as ServiceFactory<Req>>::InitError

    Errors potentially raised while building a service.
    §

    type Future = <S as ServiceFactory<Req>>::Future

    The future of the Service instance.g
    §

    fn new_service(\n &self,\n cfg: <S as ServiceFactory<Req>>::Config\n) -> <S as ServiceFactory<Req>>::Future

    Create and return a new service asynchronously.
    ","ServiceFactory","mcaptcha::ArcData"],["
    §

    impl<T, S, Req> Transform<S, Req> for Arc<T>
    where\n T: Transform<S, Req>,

    §

    type Response = <T as Transform<S, Req>>::Response

    Responses produced by the service.
    §

    type Error = <T as Transform<S, Req>>::Error

    Errors produced by the service.
    §

    type Transform = <T as Transform<S, Req>>::Transform

    The TransformService value created by this factory
    §

    type InitError = <T as Transform<S, Req>>::InitError

    Errors produced while building a transform service.
    §

    type Future = <T as Transform<S, Req>>::Future

    The future response value.
    §

    fn new_transform(&self, service: S) -> <T as Transform<S, Req>>::Future

    Creates and returns a new Transform component, asynchronously
    ","Transform","mcaptcha::ArcData"],["
    §

    impl<Sp> LocalSpawn for Arc<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","mcaptcha::ArcData"],["
    §

    impl<Sp> Spawn for Arc<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","mcaptcha::ArcData"],["
    source§

    impl<'de, T> Deserialize<'de> for Arc<T>
    where\n Box<T>: Deserialize<'de>,\n T: ?Sized,

    This impl requires the "rc" Cargo feature of Serde.

    \n

    Deserializing a data structure containing Arc will not attempt to\ndeduplicate Arc references to the same data. Every deserialized Arc\nwill end up with a strong count of 1.

    \n
    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Arc<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::ArcData"],["
    source§

    impl<T> Serialize for Arc<T>
    where\n T: Serialize + ?Sized,

    This impl requires the "rc" Cargo feature of Serde.

    \n

    Serializing a data structure containing Arc will serialize a copy of\nthe contents of the Arc each time the Arc is referenced within the\ndata structure. Serialization will not attempt to deduplicate these\nrepeated data.

    \n
    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::ArcData"],["
    §

    impl<T> RefCnt for Arc<T>

    §

    type Base = T

    The base type the pointer points to.
    §

    fn into_ptr(me: Arc<T>) -> *mut T

    Converts the smart pointer into a raw pointer, without affecting the reference count. Read more
    §

    fn as_ptr(me: &Arc<T>) -> *mut T

    Provides a view into the smart pointer as a raw pointer. Read more
    §

    unsafe fn from_ptr(ptr: *const T) -> Arc<T>

    Converts a raw pointer back into the smart pointer, without affecting the reference count. Read more
    §

    fn inc(me: &Self) -> *mut Self::Base

    Increments the reference count by one. Read more
    §

    unsafe fn dec(ptr: *const Self::Base)

    Decrements the reference count by one. Read more
    ","RefCnt","mcaptcha::ArcData"],["
    §

    impl<M> Message for Arc<M>
    where\n M: Message,

    Allow users to use Arc<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","mcaptcha::ArcData"],["
    §

    impl<A, M, I> MessageResponse<A, M> for Arc<I>
    where\n A: Actor,\n M: Message<Result = Arc<I>>,\n I: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Arc<I>>>)

    ","MessageResponse","mcaptcha::ArcData"],["
    §

    impl<T> Render for Arc<T>
    where\n T: Render + ?Sized,

    §

    fn render(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer without escaping
    §

    fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer with HTML escaping
    ","Render","mcaptcha::ArcData"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["mcaptcha",[["
    §

    impl<T> AnyProvider for Arc<T>
    where\n T: AnyProvider + ?Sized,

    §

    fn load_any(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<AnyResponse, DataError>

    Loads an [AnyPayload] according to the key and request.
    ","AnyProvider","mcaptcha::ArcData"],["
    Source§

    impl<T> Arc<T>
    where\n T: ?Sized,

    1.17.0 · Source

    pub unsafe fn from_raw(ptr: *const T) -> Arc<T>

    Constructs an Arc<T> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to\nArc<U>::into_raw with the following requirements:

    \n
      \n
    • If U is sized, it must have the same size and alignment as T. This\nis trivially true if U is T.
    • \n
    • If U is unsized, its data pointer must have the same size and\nalignment as T. This is trivially true if Arc<U> was constructed\nthrough Arc<T> and then converted to Arc<U> through an unsized\ncoercion.
    • \n
    \n

    Note that if U or U’s data pointer is not T but has the same size\nand alignment, this is basically like transmuting references of\ndifferent types. See mem::transmute for more information\non what restrictions apply in this case.

    \n

    The raw pointer must point to a block of memory allocated by the global allocator.

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw(x_ptr);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n

    Convert a slice back into its original array:

    \n\n
    use std::sync::Arc;\n\nlet x: Arc<[u32]> = Arc::new([1, 2, 3]);\nlet x_ptr: *const [u32] = Arc::into_raw(x);\n\nunsafe {\n    let x: Arc<[u32; 3]> = Arc::from_raw(x_ptr.cast::<[u32; 3]>());\n    assert_eq!(&*x, &[1, 2, 3]);\n}
    \n
    1.17.0 · Source

    pub fn into_raw(this: Arc<T>) -> *const T

    Consumes the Arc, returning the wrapped pointer.

    \n

    To avoid a memory leak the pointer must be converted back to an Arc using\nArc::from_raw.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    1.51.0 · Source

    pub unsafe fn increment_strong_count(ptr: *const T)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw and must satisfy the\nsame layout requirements specified in Arc::from_raw_in.\nThe associated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method, and ptr must point to a block of memory\nallocated by the global allocator.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    1.51.0 · Source

    pub unsafe fn decrement_strong_count(ptr: *const T)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw and must satisfy the\nsame layout requirements specified in Arc::from_raw_in.\nThe associated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method, and ptr must point to a block of memory\nallocated by the global allocator. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count(ptr);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    ",0,"mcaptcha::ArcData"],["
    Source§

    impl<T> Arc<T>

    1.0.0 · Source

    pub fn new(data: T) -> Arc<T>

    Constructs a new Arc<T>.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);
    \n
    1.60.0 · Source

    pub fn new_cyclic<F>(data_fn: F) -> Arc<T>
    where\n F: FnOnce(&Weak<T>) -> T,

    Constructs a new Arc<T> while giving you a Weak<T> to the allocation,\nto allow you to construct a T which holds a weak pointer to itself.

    \n

    Generally, a structure circularly referencing itself, either directly or\nindirectly, should not hold a strong reference to itself to prevent a memory leak.\nUsing this function, you get access to the weak pointer during the\ninitialization of T, before the Arc<T> is created, such that you can\nclone and store it inside the T.

    \n

    new_cyclic first allocates the managed allocation for the Arc<T>,\nthen calls your closure, giving it a Weak<T> to this allocation,\nand only afterwards completes the construction of the Arc<T> by placing\nthe T returned from your closure into the allocation.

    \n

    Since the new Arc<T> is not fully-constructed until Arc<T>::new_cyclic\nreturns, calling upgrade on the weak reference inside your closure will\nfail and result in a None value.

    \n
    §Panics
    \n

    If data_fn panics, the panic is propagated to the caller, and the\ntemporary Weak<T> is dropped normally.

    \n
    §Example
    \n
    use std::sync::{Arc, Weak};\n\nstruct Gadget {\n    me: Weak<Gadget>,\n}\n\nimpl Gadget {\n    /// Constructs a reference counted Gadget.\n    fn new() -> Arc<Self> {\n        // `me` is a `Weak<Gadget>` pointing at the new allocation of the\n        // `Arc` we're constructing.\n        Arc::new_cyclic(|me| {\n            // Create the actual struct here.\n            Gadget { me: me.clone() }\n        })\n    }\n\n    /// Returns a reference counted pointer to Self.\n    fn me(&self) -> Arc<Self> {\n        self.me.upgrade().unwrap()\n    }\n}
    \n
    1.82.0 · Source

    pub fn new_uninit() -> Arc<MaybeUninit<T>>

    Constructs a new Arc with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::new_uninit();\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn new_zeroed() -> Arc<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_zeroed_alloc)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_zeroed_alloc)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · Source

    pub fn pin(data: T) -> Pin<Arc<T>>

    Constructs a new Pin<Arc<T>>. If T does not implement Unpin, then\ndata will be pinned in memory and unable to be moved.

    \n
    Source

    pub fn try_pin(data: T) -> Result<Pin<Arc<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T>>, return an error if allocation fails.

    \n
    Source

    pub fn try_new(data: T) -> Result<Arc<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T>, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\nuse std::sync::Arc;\n\nlet five = Arc::try_new(5)?;
    \n
    Source

    pub fn try_new_uninit() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, returning an error\nif allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::try_new_uninit()?;\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn try_new_zeroed() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, returning an error if allocation fails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature( allocator_api)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"mcaptcha::ArcData"],["
    Source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source

    pub fn allocator(this: &Arc<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Arc::allocator(&a) instead of a.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    Source

    pub fn into_raw_with_allocator(this: Arc<T, A>) -> (*const T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Arc, returning the wrapped pointer and allocator.

    \n

    To avoid a memory leak the pointer must be converted back to an Arc using\nArc::from_raw_in.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x = Arc::new_in(\"hello\".to_owned(), System);\nlet (ptr, alloc) = Arc::into_raw_with_allocator(x);\nassert_eq!(unsafe { &*ptr }, \"hello\");\nlet x = unsafe { Arc::from_raw_in(ptr, alloc) };\nassert_eq!(&*x, \"hello\");
    \n
    1.45.0 · Source

    pub fn as_ptr(this: &Arc<T, A>) -> *const T

    Provides a raw pointer to the data.

    \n

    The counts are not affected in any way and the Arc is not consumed. The pointer is valid for\nas long as there are strong counts in the Arc.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet y = Arc::clone(&x);\nlet x_ptr = Arc::as_ptr(&x);\nassert_eq!(x_ptr, Arc::as_ptr(&y));\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    Source

    pub unsafe fn from_raw_in(ptr: *const T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs an Arc<T, A> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to Arc<U, A>::into_raw with the following requirements:

    \n
      \n
    • If U is sized, it must have the same size and alignment as T. This\nis trivially true if U is T.
    • \n
    • If U is unsized, its data pointer must have the same size and\nalignment as T. This is trivially true if Arc<U> was constructed\nthrough Arc<T> and then converted to Arc<U> through an unsized\ncoercion.
    • \n
    \n

    Note that if U or U’s data pointer is not T but has the same size\nand alignment, this is basically like transmuting references of\ndifferent types. See mem::transmute for more information\non what restrictions apply in this case.

    \n

    The raw pointer must point to a block of memory allocated by alloc

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x = Arc::new_in(\"hello\".to_owned(), System);\nlet (x_ptr, alloc) = Arc::into_raw_with_allocator(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw_in(x_ptr, System);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n

    Convert a slice back into its original array:

    \n\n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x: Arc<[u32], _> = Arc::new_in([1, 2, 3], System);\nlet x_ptr: *const [u32] = Arc::into_raw_with_allocator(x).0;\n\nunsafe {\n    let x: Arc<[u32; 3], _> = Arc::from_raw_in(x_ptr.cast::<[u32; 3]>(), System);\n    assert_eq!(&*x, &[1, 2, 3]);\n}
    \n
    1.4.0 · Source

    pub fn downgrade(this: &Arc<T, A>) -> Weak<T, A>
    where\n A: Clone,

    Creates a new Weak pointer to this allocation.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet weak_five = Arc::downgrade(&five);
    \n
    1.15.0 · Source

    pub fn weak_count(this: &Arc<T, A>) -> usize

    Gets the number of Weak pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the weak count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _weak_five = Arc::downgrade(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` or `Weak` between threads.\nassert_eq!(1, Arc::weak_count(&five));
    \n
    1.15.0 · Source

    pub fn strong_count(this: &Arc<T, A>) -> usize

    Gets the number of strong (Arc) pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the strong count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _also_five = Arc::clone(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` between threads.\nassert_eq!(2, Arc::strong_count(&five));
    \n
    Source

    pub unsafe fn increment_strong_count_in(ptr: *const T, alloc: A)
    where\n A: Clone,

    🔬This is a nightly-only experimental API. (allocator_api)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw and must satisfy the\nsame layout requirements specified in Arc::from_raw_in.\nThe associated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method, and ptr must point to a block of memory\nallocated by alloc.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let (ptr, _alloc) = Arc::into_raw_with_allocator(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    Source

    pub unsafe fn decrement_strong_count_in(ptr: *const T, alloc: A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw and must satisfy the\nsame layout requirements specified in Arc::from_raw_in.\nThe associated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method, and ptr must point to a block of memory\nallocated by alloc. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let (ptr, _alloc) = Arc::into_raw_with_allocator(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count_in(ptr, System);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    1.17.0 · Source

    pub fn ptr_eq(this: &Arc<T, A>, other: &Arc<T, A>) -> bool

    Returns true if the two Arcs point to the same allocation in a vein similar to\nptr::eq. This function ignores the metadata of dyn Trait pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet same_five = Arc::clone(&five);\nlet other_five = Arc::new(5);\n\nassert!(Arc::ptr_eq(&five, &same_five));\nassert!(!Arc::ptr_eq(&five, &other_five));
    \n
    ",0,"mcaptcha::ArcData"],["
    Source§

    impl<T, A> Arc<T, A>
    where\n T: CloneToUninit + ?Sized,\n A: Allocator + Clone,

    1.4.0 · Source

    pub fn make_mut(this: &mut Arc<T, A>) -> &mut T

    Makes a mutable reference into the given Arc.

    \n

    If there are other Arc pointers to the same allocation, then make_mut will\nclone the inner value to a new allocation to ensure unique ownership. This is also\nreferred to as clone-on-write.

    \n

    However, if there are no other Arc pointers to this allocation, but some Weak\npointers, then the Weak pointers will be dissociated and the inner value will not\nbe cloned.

    \n

    See also get_mut, which will fail rather than cloning the inner value\nor dissociating Weak pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut data = Arc::new(5);\n\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\nlet mut other_data = Arc::clone(&data); // Won't clone inner data\n*Arc::make_mut(&mut data) += 1;         // Clones inner data\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\n*Arc::make_mut(&mut other_data) *= 2;   // Won't clone anything\n\n// Now `data` and `other_data` point to different allocations.\nassert_eq!(*data, 8);\nassert_eq!(*other_data, 12);
    \n

    Weak pointers will be dissociated:

    \n\n
    use std::sync::Arc;\n\nlet mut data = Arc::new(75);\nlet weak = Arc::downgrade(&data);\n\nassert!(75 == *data);\nassert!(75 == *weak.upgrade().unwrap());\n\n*Arc::make_mut(&mut data) += 1;\n\nassert!(76 == *data);\nassert!(weak.upgrade().is_none());
    \n
    ",0,"mcaptcha::ArcData"],["
    Source§

    impl<T, A> Arc<T, A>
    where\n T: Clone,\n A: Allocator,

    1.76.0 · Source

    pub fn unwrap_or_clone(this: Arc<T, A>) -> T

    If we have the only reference to T then unwrap it. Otherwise, clone T and return the\nclone.

    \n

    Assuming arc_t is of type Arc<T>, this function is functionally equivalent to\n(*arc_t).clone(), but will avoid cloning the inner value where possible.

    \n
    §Examples
    \n
    let inner = String::from(\"test\");\nlet ptr = inner.as_ptr();\n\nlet arc = Arc::new(inner);\nlet inner = Arc::unwrap_or_clone(arc);\n// The inner value was not cloned\nassert!(ptr::eq(ptr, inner.as_ptr()));\n\nlet arc = Arc::new(inner);\nlet arc2 = arc.clone();\nlet inner = Arc::unwrap_or_clone(arc);\n// Because there were 2 references, we had to clone the inner value.\nassert!(!ptr::eq(ptr, inner.as_ptr()));\n// `arc2` is the last reference, so when we unwrap it we get back\n// the original `String`.\nlet inner = Arc::unwrap_or_clone(arc2);\nassert!(ptr::eq(ptr, inner.as_ptr()));
    \n
    ",0,"mcaptcha::ArcData"],["
    Source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    1.4.0 · Source

    pub fn get_mut(this: &mut Arc<T, A>) -> Option<&mut T>

    Returns a mutable reference into the given Arc, if there are\nno other Arc or Weak pointers to the same allocation.

    \n

    Returns None otherwise, because it is not safe to\nmutate a shared value.

    \n

    See also make_mut, which will clone\nthe inner value when there are other Arc pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut x = Arc::new(3);\n*Arc::get_mut(&mut x).unwrap() = 4;\nassert_eq!(*x, 4);\n\nlet _y = Arc::clone(&x);\nassert!(Arc::get_mut(&mut x).is_none());
    \n
    Source

    pub unsafe fn get_mut_unchecked(this: &mut Arc<T, A>) -> &mut T

    🔬This is a nightly-only experimental API. (get_mut_unchecked)

    Returns a mutable reference into the given Arc,\nwithout any check.

    \n

    See also get_mut, which is safe and does appropriate checks.

    \n
    §Safety
    \n

    If any other Arc or Weak pointers to the same allocation exist, then\nthey must not be dereferenced or have active borrows for the duration\nof the returned borrow, and their inner type must be exactly the same as the\ninner type of this Rc (including lifetimes). This is trivially the case if no\nsuch pointers exist, for example immediately after Arc::new.

    \n
    §Examples
    \n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut x = Arc::new(String::new());\nunsafe {\n    Arc::get_mut_unchecked(&mut x).push_str(\"foo\")\n}\nassert_eq!(*x, \"foo\");
    \n

    Other Arc pointers to the same allocation must be to the same type.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<str> = Arc::from(\"Hello, world!\");\nlet mut y: Arc<[u8]> = x.clone().into();\nunsafe {\n    // this is Undefined Behavior, because x's inner type is str, not [u8]\n    Arc::get_mut_unchecked(&mut y).fill(0xff); // 0xff is invalid in UTF-8\n}\nprintln!(\"{}\", &*x); // Invalid UTF-8 in a str
    \n

    Other Arc pointers to the same allocation must be to the exact same type, including lifetimes.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<&str> = Arc::new(\"Hello, world!\");\n{\n    let s = String::from(\"Oh, no!\");\n    let mut y: Arc<&str> = x.clone();\n    unsafe {\n        // this is Undefined Behavior, because x's inner type\n        // is &'long str, not &'short str\n        *Arc::get_mut_unchecked(&mut y) = &s;\n    }\n}\nprintln!(\"{}\", &*x); // Use-after-free
    \n
    Source

    pub fn is_unique(this: &Arc<T, A>) -> bool

    🔬This is a nightly-only experimental API. (arc_is_unique)

    Determine whether this is the unique reference to the underlying data.

    \n

    Returns true if there are no other Arc or Weak pointers to the same allocation;\nreturns false otherwise.

    \n

    If this function returns true, then is guaranteed to be safe to call get_mut_unchecked\non this Arc, so long as no clones occur in between.

    \n
    §Examples
    \n
    #![feature(arc_is_unique)]\n\nuse std::sync::Arc;\n\nlet x = Arc::new(3);\nassert!(Arc::is_unique(&x));\n\nlet y = Arc::clone(&x);\nassert!(!Arc::is_unique(&x));\ndrop(y);\n\n// Weak references also count, because they could be upgraded at any time.\nlet z = Arc::downgrade(&x);\nassert!(!Arc::is_unique(&x));
    \n
    §Pointer invalidation
    \n

    This function will always return the same value as Arc::get_mut(arc).is_some(). However,\nunlike that operation it does not produce any mutable references to the underlying data,\nmeaning no pointers to the data inside the Arc are invalidated by the call. Thus, the\nfollowing code is valid, even though it would be UB if it used Arc::get_mut:

    \n\n
    #![feature(arc_is_unique)]\n\nuse std::sync::Arc;\n\nlet arc = Arc::new(5);\nlet pointer: *const i32 = &*arc;\nassert!(Arc::is_unique(&arc));\nassert_eq!(unsafe { *pointer }, 5);
    \n
    §Atomic orderings
    \n

    Concurrent drops to other Arc pointers to the same allocation will synchronize with this\ncall - that is, this call performs an Acquire operation on the underlying strong and weak\nref counts. This ensures that calling get_mut_unchecked is safe.

    \n

    Note that this operation requires locking the weak ref count, so concurrent calls to\ndowngrade may spin-loop for a short period of time.

    \n
    ",0,"mcaptcha::ArcData"],["
    Source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,

    Source

    pub fn new_in(data: T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T> in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);
    \n
    Source

    pub fn new_uninit_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(get_mut_unchecked)]\n#![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    Source

    pub fn new_zeroed_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    Source

    pub fn new_cyclic_in<F>(data_fn: F, alloc: A) -> Arc<T, A>
    where\n F: FnOnce(&Weak<T, A>) -> T,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T, A> in the given allocator while giving you a Weak<T, A> to the allocation,\nto allow you to construct a T which holds a weak pointer to itself.

    \n

    Generally, a structure circularly referencing itself, either directly or\nindirectly, should not hold a strong reference to itself to prevent a memory leak.\nUsing this function, you get access to the weak pointer during the\ninitialization of T, before the Arc<T, A> is created, such that you can\nclone and store it inside the T.

    \n

    new_cyclic_in first allocates the managed allocation for the Arc<T, A>,\nthen calls your closure, giving it a Weak<T, A> to this allocation,\nand only afterwards completes the construction of the Arc<T, A> by placing\nthe T returned from your closure into the allocation.

    \n

    Since the new Arc<T, A> is not fully-constructed until Arc<T, A>::new_cyclic_in\nreturns, calling upgrade on the weak reference inside your closure will\nfail and result in a None value.

    \n
    §Panics
    \n

    If data_fn panics, the panic is propagated to the caller, and the\ntemporary Weak<T> is dropped normally.

    \n
    §Example
    \n

    See new_cyclic

    \n
    Source

    pub fn pin_in(data: T, alloc: A) -> Pin<Arc<T, A>>
    where\n A: 'static,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator. If T does not implement Unpin,\nthen data will be pinned in memory and unable to be moved.

    \n
    Source

    pub fn try_pin_in(data: T, alloc: A) -> Result<Pin<Arc<T, A>>, AllocError>
    where\n A: 'static,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator, return an error if allocation\nfails.

    \n
    Source

    pub fn try_new_in(data: T, alloc: A) -> Result<Arc<T, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T, A> in the provided allocator, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::try_new_in(5, System)?;
    \n
    Source

    pub fn try_new_uninit_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, in the provided allocator, returning an\nerror if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    Source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator, returning an error if allocation\nfails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    1.4.0 · Source

    pub fn try_unwrap(this: Arc<T, A>) -> Result<T, Arc<T, A>>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, an Err is returned with the same Arc that was\npassed in.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    It is strongly recommended to use Arc::into_inner instead if you don’t\nkeep the Arc in the Err case.\nImmediately dropping the Err-value, as the expression\nArc::try_unwrap(this).ok() does, can cause the strong count to\ndrop to zero and the inner value of the Arc to be dropped.\nFor instance, if two threads execute such an expression in parallel,\nthere is a race condition without the possibility of unsafety:\nThe threads could first both check whether they own the last instance\nin Arc::try_unwrap, determine that they both do not, and then both\ndiscard and drop their instance in the call to ok.\nIn this scenario, the value inside the Arc is safely destroyed\nby exactly one of the threads, but neither thread will ever be able\nto use the value.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nassert_eq!(Arc::try_unwrap(x), Ok(3));\n\nlet x = Arc::new(4);\nlet _y = Arc::clone(&x);\nassert_eq!(*Arc::try_unwrap(x).unwrap_err(), 4);
    \n
    1.70.0 · Source

    pub fn into_inner(this: Arc<T, A>) -> Option<T>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, None is returned and the Arc is dropped.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    If Arc::into_inner is called on every clone of this Arc,\nit is guaranteed that exactly one of the calls returns the inner value.\nThis means in particular that the inner value is not dropped.

    \n

    Arc::try_unwrap is conceptually similar to Arc::into_inner, but it\nis meant for different use-cases. If used as a direct replacement\nfor Arc::into_inner anyway, such as with the expression\nArc::try_unwrap(this).ok(), then it does\nnot give the same guarantee as described in the previous paragraph.\nFor more information, see the examples below and read the documentation\nof Arc::try_unwrap.

    \n
    §Examples
    \n

    Minimal example demonstrating the guarantee that Arc::into_inner gives.

    \n\n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nlet y = Arc::clone(&x);\n\n// Two threads calling `Arc::into_inner` on both clones of an `Arc`:\nlet x_thread = std::thread::spawn(|| Arc::into_inner(x));\nlet y_thread = std::thread::spawn(|| Arc::into_inner(y));\n\nlet x_inner_value = x_thread.join().unwrap();\nlet y_inner_value = y_thread.join().unwrap();\n\n// One of the threads is guaranteed to receive the inner value:\nassert!(matches!(\n    (x_inner_value, y_inner_value),\n    (None, Some(3)) | (Some(3), None)\n));\n// The result could also be `(None, None)` if the threads called\n// `Arc::try_unwrap(x).ok()` and `Arc::try_unwrap(y).ok()` instead.
    \n

    A more practical example demonstrating the need for Arc::into_inner:

    \n\n
    use std::sync::Arc;\n\n// Definition of a simple singly linked list using `Arc`:\n#[derive(Clone)]\nstruct LinkedList<T>(Option<Arc<Node<T>>>);\nstruct Node<T>(T, Option<Arc<Node<T>>>);\n\n// Dropping a long `LinkedList<T>` relying on the destructor of `Arc`\n// can cause a stack overflow. To prevent this, we can provide a\n// manual `Drop` implementation that does the destruction in a loop:\nimpl<T> Drop for LinkedList<T> {\n    fn drop(&mut self) {\n        let mut link = self.0.take();\n        while let Some(arc_node) = link.take() {\n            if let Some(Node(_value, next)) = Arc::into_inner(arc_node) {\n                link = next;\n            }\n        }\n    }\n}\n\n// Implementation of `new` and `push` omitted\nimpl<T> LinkedList<T> {\n    /* ... */\n}\n\n// The following code could have still caused a stack overflow\n// despite the manual `Drop` impl if that `Drop` impl had used\n// `Arc::try_unwrap(arc).ok()` instead of `Arc::into_inner(arc)`.\n\n// Create a long list and clone it\nlet mut x = LinkedList::new();\nlet size = 100000;\nfor i in 0..size {\n    x.push(i); // Adds i to the front of x\n}\nlet y = x.clone();\n\n// Drop the clones in parallel\nlet x_thread = std::thread::spawn(|| drop(x));\nlet y_thread = std::thread::spawn(|| drop(y));\nx_thread.join().unwrap();\ny_thread.join().unwrap();
    \n
    ",0,"mcaptcha::ArcData"],["
    1.64.0 · Source§

    impl<T> AsFd for Arc<T>
    where\n T: AsFd + ?Sized,

    This impl allows implementing traits that require AsFd on Arc.

    \n
    \n
    use std::net::UdpSocket;\nuse std::sync::Arc;\n\ntrait MyTrait: AsFd {}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    Source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","mcaptcha::ArcData"],["
    1.63.0 · Source§

    impl<T> AsRawFd for Arc<T>
    where\n T: AsRawFd,

    This impl allows implementing traits that require AsRawFd on Arc.

    \n
    \n
    use std::net::UdpSocket;\nuse std::sync::Arc;\ntrait MyTrait: AsRawFd {\n}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    Source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","mcaptcha::ArcData"],["
    1.5.0 · Source§

    impl<T, A> AsRef<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Borrow<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","mcaptcha::ArcData"],["
    §

    impl<M, P> BoundDataProvider<M> for Arc<P>
    where\n M: DataMarker,\n P: BoundDataProvider<M> + ?Sized,

    §

    fn load_bound(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    §

    fn bound_key(&self) -> DataKey

    Returns the [DataKey] that this provider uses for loading data.
    ","BoundDataProvider","mcaptcha::ArcData"],["
    §

    impl<T> BufferProvider for Arc<T>
    where\n T: BufferProvider + ?Sized,

    §

    fn load_buffer(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<BufferMarker>, DataError>

    Loads a [DataPayload]<[BufferMarker]> according to the key and request.
    ","BufferProvider","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Clone for Arc<T, A>
    where\n A: Allocator + Clone,\n T: ?Sized,

    Source§

    fn clone(&self) -> Arc<T, A>

    Makes a clone of the Arc pointer.

    \n

    This creates another pointer to the same allocation, increasing the\nstrong reference count.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet _ = Arc::clone(&five);
    \n
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::ArcData"],["
    §

    impl<M, P> DataProvider<M> for Arc<P>
    where\n M: KeyedDataMarker,\n P: DataProvider<M> + ?Sized,

    §

    fn load(&self, req: DataRequest<'_>) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DataProvider","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Debug for Arc<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T> Default for Arc<T>
    where\n T: Default,

    Source§

    fn default() -> Arc<T>

    Creates a new Arc<T>, with the Default value for T.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x: Arc<i32> = Default::default();\nassert_eq!(*x, 0);
    \n
    ","Default","mcaptcha::ArcData"],["
    Source§

    impl<'de, T> Deserialize<'de> for Arc<T>
    where\n Box<T>: Deserialize<'de>,\n T: ?Sized,

    This impl requires the \"rc\" Cargo feature of Serde.

    \n

    Deserializing a data structure containing Arc will not attempt to\ndeduplicate Arc references to the same data. Every deserialized Arc\nwill end up with a strong count of 1.

    \n
    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Arc<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Display for Arc<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Drop for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn drop(&mut self)

    Drops the Arc.

    \n

    This will decrement the strong reference count. If the strong reference\ncount reaches zero then the only other references (if any) are\nWeak, so we drop the inner value.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nstruct Foo;\n\nimpl Drop for Foo {\n    fn drop(&mut self) {\n        println!(\"dropped!\");\n    }\n}\n\nlet foo  = Arc::new(Foo);\nlet foo2 = Arc::clone(&foo);\n\ndrop(foo);    // Doesn't print anything\ndrop(foo2);   // Prints \"dropped!\"
    \n
    ","Drop","mcaptcha::ArcData"],["
    §

    impl<M, P> DynamicDataProvider<M> for Arc<P>
    where\n M: DataMarker,\n P: DynamicDataProvider<M> + ?Sized,

    §

    fn load_data(\n &self,\n key: DataKey,\n req: DataRequest<'_>,\n) -> Result<DataResponse<M>, DataError>

    Query the provider for data, returning the result. Read more
    ","DynamicDataProvider","mcaptcha::ArcData"],["
    1.52.0 · Source§

    impl<T> Error for Arc<T>
    where\n T: Error + ?Sized,

    Source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    Source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    Source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    Source§

    fn provide<'a>(&'a self, req: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    ","Error","mcaptcha::ArcData"],["
    1.21.0 · Source§

    impl<T, A> From<Box<T, A>> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn from(v: Box<T, A>) -> Arc<T, A>

    Move a boxed object to a new, reference-counted allocation.

    \n
    §Example
    \n
    let unique: Box<str> = Box::from(\"eggplant\");\nlet shared: Arc<str> = Arc::from(unique);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","mcaptcha::ArcData"],["
    1.45.0 · Source§

    impl<'a, B> From<Cow<'a, B>> for Arc<B>
    where\n B: ToOwned + ?Sized,\n Arc<B>: From<&'a B> + From<<B as ToOwned>::Owned>,

    Source§

    fn from(cow: Cow<'a, B>) -> Arc<B>

    Creates an atomically reference-counted pointer from a clone-on-write\npointer by copying its content.

    \n
    §Example
    \n
    let cow: Cow<'_, str> = Cow::Borrowed(\"eggplant\");\nlet shared: Arc<str> = Arc::from(cow);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","mcaptcha::ArcData"],["
    1.6.0 · Source§

    impl<T> From<T> for Arc<T>

    Source§

    fn from(t: T) -> Arc<T>

    Converts a T into an Arc<T>

    \n

    The conversion moves the value into a\nnewly allocated Arc. It is equivalent to\ncalling Arc::new(t).

    \n
    §Example
    \n
    let x = 5;\nlet arc = Arc::new(5);\n\nassert_eq!(Arc::from(x), arc);
    \n
    ","From","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Hash for Arc<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    Source§

    fn hash<H>(&self, state: &mut H)
    where\n H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","mcaptcha::ArcData"],["
    §

    impl<Sp> LocalSpawn for Arc<Sp>
    where\n Sp: LocalSpawn + ?Sized,

    §

    fn spawn_local_obj(\n &self,\n future: LocalFutureObj<'static, ()>,\n) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status_local(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","LocalSpawn","mcaptcha::ArcData"],["
    Source§

    impl<T> Log for Arc<T>
    where\n T: Log + ?Sized,

    Source§

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Determines if a log message with the specified metadata would be\nlogged. Read more
    Source§

    fn log(&self, record: &Record<'_>)

    Logs the Record. Read more
    Source§

    fn flush(&self)

    Flushes any buffered records. Read more
    ","Log","mcaptcha::ArcData"],["
    §

    impl<M> Message for Arc<M>
    where\n M: Message,

    Allow users to use Arc<M> as a message without having to re-impl Message

    \n
    §

    type Result = <M as Message>::Result

    The type of value that this message will resolved with if it is\nsuccessful.
    ","Message","mcaptcha::ArcData"],["
    §

    impl<A, M, I> MessageResponse<A, M> for Arc<I>
    where\n A: Actor,\n M: Message<Result = Arc<I>>,\n I: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Arc<I>>>)

    ","MessageResponse","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Ord for Arc<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    Source§

    fn cmp(&self, other: &Arc<T, A>) -> Ordering

    Comparison for two Arcs.

    \n

    The two are compared by calling cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Ordering::Less, five.cmp(&Arc::new(6)));
    \n
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","mcaptcha::ArcData"],["
    §

    impl<I, O, T> Parser<I, O> for Arc<T>
    where\n I: Clone,\n T: Parser<I, O> + ?Sized,

    §

    type Error = <T as Parser<I, O>>::Error

    The type of errors emitted by this parser.
    §

    fn parse_recovery<'a, Iter, S>(\n &self,\n stream: S,\n) -> (Option<O>, Vec<Self::Error>)
    where\n Self: Sized,\n Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a,\n S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

    Parse a stream of tokens, yielding an output if possible, and any errors encountered along the way. Read more
    §

    fn parse_recovery_verbose<'a, Iter, S>(\n &self,\n stream: S,\n) -> (Option<O>, Vec<Self::Error>)
    where\n Self: Sized,\n Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a,\n S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

    Parse a stream of tokens, yielding an output if possible, and any errors encountered along the way. Unlike\n[Parser::parse_recovery], this function will produce verbose debugging output as it executes. Read more
    §

    fn parse<'a, Iter, S>(&self, stream: S) -> Result<O, Vec<Self::Error>>
    where\n Self: Sized,\n Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a,\n S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

    Parse a stream of tokens, yielding an output or any errors that were encountered along the way. Read more
    §

    fn debug<T>(self, x: T) -> Debug<Self>
    where\n Self: Sized,\n T: Display + 'static,

    Include this parser in the debugging output produced by [Parser::parse_recovery_verbose]. Read more
    §

    fn map<U, F>(self, f: F) -> Map<Self, F, O>
    where\n Self: Sized,\n F: Fn(O) -> U,

    Map the output of this parser to another value. Read more
    §

    fn map_with_span<U, F>(self, f: F) -> MapWithSpan<Self, F, O>
    where\n Self: Sized,\n F: Fn(O, <Self::Error as Error<I>>::Span) -> U,

    Map the output of this parser to another value, making use of the pattern’s span when doing so. Read more
    §

    fn map_err<F>(self, f: F) -> MapErr<Self, F>
    where\n Self: Sized,\n F: Fn(Self::Error) -> Self::Error,

    Map the primary error of this parser to another value. Read more
    §

    fn or_else<F>(self, f: F) -> OrElse<Self, F>
    where\n Self: Sized,\n F: Fn(Self::Error) -> Result<O, Self::Error>,

    Map the primary error of this parser to a result. If the result is Ok, the parser succeeds with that value. Read more
    §

    fn map_err_with_span<F>(self, f: F) -> MapErrWithSpan<Self, F>
    where\n Self: Sized,\n F: Fn(Self::Error, <Self::Error as Error<I>>::Span) -> Self::Error,

    Map the primary error of this parser to another value, making use of the span from the start of the attempted\nto the point at which the error was encountered. Read more
    §

    fn try_map<U, F>(self, f: F) -> TryMap<Self, F, O>
    where\n Self: Sized,\n F: Fn(O, <Self::Error as Error<I>>::Span) -> Result<U, Self::Error>,

    After a successful parse, apply a fallible function to the output. If the function produces an error, treat it\nas a parsing error. Read more
    §

    fn validate<F, U>(self, f: F) -> Validate<Self, O, F>
    where\n Self: Sized,\n F: Fn(O, <Self::Error as Error<I>>::Span, &mut dyn FnMut(Self::Error)) -> U,

    Validate an output, producing non-terminal errors if it does not fulfil certain criteria. Read more
    §

    fn labelled<L>(self, label: L) -> Label<Self, L>
    where\n Self: Sized,\n L: Into<<Self::Error as Error<I>>::Label> + Clone,

    Label the pattern parsed by this parser for more useful error messages. Read more
    §

    fn to<U>(self, x: U) -> To<Self, O, U>
    where\n Self: Sized,\n U: Clone,

    Transform all outputs of this parser to a pretermined value. Read more
    §

    fn foldl<A, B, F>(self, f: F) -> Foldl<Self, F, A, B>
    where\n Self: Sized + Parser<I, (A, B)>,\n B: IntoIterator,\n F: Fn(A, <B as IntoIterator>::Item) -> A,

    Left-fold the output of the parser into a single value. Read more
    §

    fn foldr<'a, A, B, F>(self, f: F) -> Foldr<Self, F, A, B>
    where\n Self: Sized + Parser<I, (A, B)>,\n A: IntoIterator,\n <A as IntoIterator>::IntoIter: DoubleEndedIterator,\n F: Fn(<A as IntoIterator>::Item, B) -> B + 'a,

    Right-fold the output of the parser into a single value. Read more
    §

    fn ignored(self) -> To<Self, O, ()>
    where\n Self: Sized,

    Ignore the output of this parser, yielding () as an output instead. Read more
    §

    fn collect<C>(self) -> Map<Self, fn(O) -> C, O>
    where\n Self: Sized,\n O: IntoIterator,\n C: FromIterator<<O as IntoIterator>::Item>,

    Collect the output of this parser into a type implementing [FromIterator]. Read more
    §

    fn then<U, P>(self, other: P) -> Then<Self, P>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, yielding a tuple of the two outputs. Read more
    §

    fn then_with<U, P, F>(self, other: F) -> ThenWith<I, O, U, Self, P, F>
    where\n F: Fn(O) -> P,\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, creating the second parser from the result of\nthe first. If you only have a couple cases to handle, prefer [Parser::or]. Read more
    §

    fn chain<T, U, P>(\n self,\n other: P,\n) -> Map<Then<Self, P>, fn((O, U)) -> Vec<T>, (O, U)>
    where\n Self: Sized,\n U: Chain<T>,\n O: Chain<T>,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, attempting to chain the two outputs into a Vec. Read more
    §

    fn flatten<T, Inner>(self) -> Map<Self, fn(O) -> Vec<T>, O>
    where\n Self: Sized,\n O: IntoIterator<Item = Inner>,\n Inner: IntoIterator<Item = T>,

    Flatten a nested collection. Read more
    §

    fn ignore_then<U, P>(\n self,\n other: P,\n) -> Map<Then<Self, P>, fn((O, U)) -> U, (O, U)>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, yielding only the output of the latter. Read more
    §

    fn then_ignore<U, P>(\n self,\n other: P,\n) -> Map<Then<Self, P>, fn((O, U)) -> O, (O, U)>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse one thing and then another thing, yielding only the output of the former. Read more
    §

    fn padded_by<U, P>(\n self,\n other: P,\n) -> Map<Then<Map<Then<P, Self>, fn((U, O)) -> O, (U, O)>, P>, fn((O, U)) -> O, (O, U)>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error> + Clone,

    Parse a pattern, but with an instance of another pattern on either end, yielding the output of the inner. Read more
    §

    fn delimited_by<U, V, L, R>(\n self,\n start: L,\n end: R,\n) -> DelimitedBy<Self, L, R, U, V>
    where\n Self: Sized,\n L: Parser<I, U, Error = Self::Error>,\n R: Parser<I, V, Error = Self::Error>,

    Parse the pattern surrounded by the given delimiters. Read more
    §

    fn or<P>(self, other: P) -> Or<Self, P>
    where\n Self: Sized,\n P: Parser<I, O, Error = Self::Error>,

    Parse one thing or, on failure, another thing. Read more
    §

    fn recover_with<S>(self, strategy: S) -> Recovery<Self, S>
    where\n Self: Sized,\n S: Strategy<I, O, Self::Error>,

    Apply a fallback recovery strategy to this parser should it fail. Read more
    §

    fn or_not(self) -> OrNot<Self>
    where\n Self: Sized,

    Attempt to parse something, but only if it exists. Read more
    §

    fn not(self) -> Not<Self, O>
    where\n Self: Sized,

    Parses a single token if, and only if, the pattern fails to parse. Read more
    §

    fn repeated(self) -> Repeated<Self>
    where\n Self: Sized,

    Parse a pattern any number of times (including zero times). Read more
    §

    fn separated_by<U, P>(self, other: P) -> SeparatedBy<Self, P, U>
    where\n Self: Sized,\n P: Parser<I, U, Error = Self::Error>,

    Parse a pattern, separated by another, any number of times. Read more
    §

    fn rewind(self) -> Rewind<Self>
    where\n Self: Sized,

    Parse a pattern. Afterwards, the input stream will be rewound to its original state, as if parsing had not\noccurred. Read more
    §

    fn boxed<'a>(self) -> BoxedParser<'a, I, O, Self::Error>
    where\n Self: Sized + 'a,

    Box the parser, yielding a parser that performs parsing through dynamic dispatch. Read more
    §

    fn from_str<U>(self) -> Map<Self, fn(O) -> Result<U, <U as FromStr>::Err>, O>
    where\n Self: Sized,\n U: FromStr,\n O: AsRef<str>,

    Attempt to convert the output of this parser into something else using Rust’s FromStr trait. Read more
    §

    fn unwrapped<U, E>(self) -> Unwrapped<Self, E, Self::Error>
    where\n Self: Sized + Parser<I, Result<U, E>>,\n E: Debug,

    For parsers that produce a Result as their output, unwrap the result (panicking if an Err is\nencountered). Read more
    ","Parser","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> PartialEq for Arc<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    Source§

    fn eq(&self, other: &Arc<T, A>) -> bool

    Equality for two Arcs.

    \n

    Two Arcs are equal if their inner values are equal, even if they are\nstored in different allocation.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same allocation are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five == Arc::new(5));
    \n
    Source§

    fn ne(&self, other: &Arc<T, A>) -> bool

    Inequality for two Arcs.

    \n

    Two Arcs are not equal if their inner values are not equal.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same value are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five != Arc::new(6));
    \n
    ","PartialEq","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> PartialOrd for Arc<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    Source§

    fn partial_cmp(&self, other: &Arc<T, A>) -> Option<Ordering>

    Partial comparison for two Arcs.

    \n

    The two are compared by calling partial_cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Some(Ordering::Less), five.partial_cmp(&Arc::new(6)));
    \n
    Source§

    fn lt(&self, other: &Arc<T, A>) -> bool

    Less-than comparison for two Arcs.

    \n

    The two are compared by calling < on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five < Arc::new(6));
    \n
    Source§

    fn le(&self, other: &Arc<T, A>) -> bool

    ‘Less than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling <= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five <= Arc::new(5));
    \n
    Source§

    fn gt(&self, other: &Arc<T, A>) -> bool

    Greater-than comparison for two Arcs.

    \n

    The two are compared by calling > on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five > Arc::new(4));
    \n
    Source§

    fn ge(&self, other: &Arc<T, A>) -> bool

    ‘Greater than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling >= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five >= Arc::new(5));
    \n
    ","PartialOrd","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Pointer for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Pointer","mcaptcha::ArcData"],["
    §

    impl<T> RefCnt for Arc<T>

    §

    type Base = T

    The base type the pointer points to.
    §

    fn into_ptr(me: Arc<T>) -> *mut T

    Converts the smart pointer into a raw pointer, without affecting the reference count. Read more
    §

    fn as_ptr(me: &Arc<T>) -> *mut T

    Provides a view into the smart pointer as a raw pointer. Read more
    §

    unsafe fn from_ptr(ptr: *const T) -> Arc<T>

    Converts a raw pointer back into the smart pointer, without affecting the reference count. Read more
    §

    fn inc(me: &Self) -> *mut Self::Base

    Increments the reference count by one. Read more
    §

    unsafe fn dec(ptr: *const Self::Base)

    Decrements the reference count by one. Read more
    ","RefCnt","mcaptcha::ArcData"],["
    §

    impl<T> Render for Arc<T>
    where\n T: Render + ?Sized,

    §

    fn render(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer without escaping
    §

    fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>

    render to Buffer with HTML escaping
    ","Render","mcaptcha::ArcData"],["
    Source§

    impl<T> Serialize for Arc<T>
    where\n T: Serialize + ?Sized,

    This impl requires the \"rc\" Cargo feature of Serde.

    \n

    Serializing a data structure containing Arc will serialize a copy of\nthe contents of the Arc each time the Arc is referenced within the\ndata structure. Serialization will not attempt to deduplicate these\nrepeated data.

    \n
    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::ArcData"],["
    §

    impl<Request, S> Service<Request> for Arc<S>
    where\n S: Service<Request> + ?Sized,

    §

    type Response = <S as Service<Request>>::Response

    Responses given by the service.
    §

    type Error = <S as Service<Request>>::Error

    Errors produced by the service. Read more
    §

    type Future = <S as Service<Request>>::Future

    The future response value.
    §

    fn call(&self, req: Request) -> <Arc<S> as Service<Request>>::Future

    Process the request and return the response asynchronously.\ncall takes &self instead of mut &self because: Read more
    ","Service","mcaptcha::ArcData"],["
    §

    impl<S, Req> ServiceFactory<Req> for Arc<S>
    where\n S: ServiceFactory<Req>,

    §

    type Response = <S as ServiceFactory<Req>>::Response

    Responses given by the created services.
    §

    type Error = <S as ServiceFactory<Req>>::Error

    Errors produced by the created services.
    §

    type Config = <S as ServiceFactory<Req>>::Config

    Service factory configuration.
    §

    type Service = <S as ServiceFactory<Req>>::Service

    The kind of Service created by this factory.
    §

    type InitError = <S as ServiceFactory<Req>>::InitError

    Errors potentially raised while building a service.
    §

    type Future = <S as ServiceFactory<Req>>::Future

    The future of the Service instance.g
    §

    fn new_service(\n &self,\n cfg: <S as ServiceFactory<Req>>::Config,\n) -> <S as ServiceFactory<Req>>::Future

    Create and return a new service asynchronously.
    ","ServiceFactory","mcaptcha::ArcData"],["
    §

    impl<Sp> Spawn for Arc<Sp>
    where\n Sp: Spawn + ?Sized,

    §

    fn spawn_obj(&self, future: FutureObj<'static, ()>) -> Result<(), SpawnError>

    Spawns a future that will be run to completion. Read more
    §

    fn status(&self) -> Result<(), SpawnError>

    Determines whether the executor is able to spawn new tasks. Read more
    ","Spawn","mcaptcha::ArcData"],["
    §

    impl<S> Subscriber for Arc<S>
    where\n S: Subscriber + ?Sized,

    §

    fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

    Registers a new callsite with this subscriber, returning whether or not\nthe subscriber is interested in being notified about the callsite. Read more
    §

    fn enabled(&self, metadata: &Metadata<'_>) -> bool

    Returns true if a span or event with the specified metadata would be\nrecorded. Read more
    §

    fn max_level_hint(&self) -> Option<LevelFilter>

    Returns the highest verbosity level that this Subscriber will\nenable, or None, if the subscriber does not implement level-based\nfiltering or chooses not to implement this method. Read more
    §

    fn new_span(&self, span: &Attributes<'_>) -> Id

    Visit the construction of a new span, returning a new span ID for the\nspan being constructed. Read more
    §

    fn record(&self, span: &Id, values: &Record<'_>)

    Record a set of values on a span. Read more
    §

    fn record_follows_from(&self, span: &Id, follows: &Id)

    Adds an indication that span follows from the span with the id\nfollows. Read more
    §

    fn event_enabled(&self, event: &Event<'_>) -> bool

    Determine if an [Event] should be recorded. Read more
    §

    fn event(&self, event: &Event<'_>)

    Records that an Event has occurred. Read more
    §

    fn enter(&self, span: &Id)

    Records that a span has been entered. Read more
    §

    fn exit(&self, span: &Id)

    Records that a span has been exited. Read more
    §

    fn clone_span(&self, id: &Id) -> Id

    Notifies the subscriber that a span ID has been cloned. Read more
    §

    fn try_close(&self, id: Id) -> bool

    Notifies the subscriber that a span ID has been dropped, and returns\ntrue if there are now 0 IDs that refer to that span. Read more
    §

    fn drop_span(&self, id: Id)

    👎Deprecated since 0.1.2: use Subscriber::try_close instead
    This method is deprecated. Read more
    §

    fn current_span(&self) -> Current

    Returns a type representing this subscriber’s view of the current span. Read more
    §

    unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>

    If self is the same type as the provided TypeId, returns an untyped\n*const pointer to that type. Otherwise, returns None. Read more
    §

    fn on_register_dispatch(&self, subscriber: &Dispatch)

    Invoked when this subscriber becomes a [Dispatch]. Read more
    ","Subscriber","mcaptcha::ArcData"],["
    §

    impl<T, S, Req> Transform<S, Req> for Arc<T>
    where\n T: Transform<S, Req>,

    §

    type Response = <T as Transform<S, Req>>::Response

    Responses produced by the service.
    §

    type Error = <T as Transform<S, Req>>::Error

    Errors produced by the service.
    §

    type Transform = <T as Transform<S, Req>>::Transform

    The TransformService value created by this factory
    §

    type InitError = <T as Transform<S, Req>>::InitError

    Errors produced while building a transform service.
    §

    type Future = <T as Transform<S, Req>>::Future

    The future response value.
    §

    fn new_transform(&self, service: S) -> <T as Transform<S, Req>>::Future

    Creates and returns a new Transform component, asynchronously
    ","Transform","mcaptcha::ArcData"],["
    §

    impl<T> ValidateLength<u64> for Arc<T>
    where\n T: ValidateLength<u64>,

    §

    fn length(&self) -> Option<u64>

    §

    fn validate_length(\n &self,\n min: Option<T>,\n max: Option<T>,\n equal: Option<T>,\n) -> bool

    ","ValidateLength","mcaptcha::ArcData"],["
    §

    impl<T> ValidateRegex for Arc<T>
    where\n T: ValidateRegex,

    §

    fn validate_regex(&self, regex: impl AsRegex) -> bool

    ","ValidateRegex","mcaptcha::ArcData"],["
    §

    impl<T> ValidateUrl for Arc<T>
    where\n T: ValidateUrl,

    §

    fn as_url_string(&self) -> Option<Cow<'_, str>>

    §

    fn validate_url(&self) -> bool

    ","ValidateUrl","mcaptcha::ArcData"],["
    §

    impl<'a, T> Writeable for Arc<T>
    where\n T: Writeable + ?Sized,

    §

    fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: Write + ?Sized,

    Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
    §

    fn write_to_parts<W>(&self, sink: &mut W) -> Result<(), Error>
    where\n W: PartsWrite + ?Sized,

    Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn write_to_string(&self) -> Cow<'_, str>

    Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
    ","Writeable","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Deref for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    Source§

    type Target = T

    The resulting type after dereferencing.
    Source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","mcaptcha::ArcData"],["
    §

    impl<T> CartablePointerLike for Arc<T>

    ","CartablePointerLike","mcaptcha::ArcData"],["
    §

    impl<T> CloneStableDeref for Arc<T>
    where\n T: ?Sized,

    ","CloneStableDeref","mcaptcha::ArcData"],["
    §

    impl<T> CloneableCart for Arc<T>
    where\n T: ?Sized,

    ","CloneableCart","mcaptcha::ArcData"],["
    §

    impl<T> CloneableCartablePointerLike for Arc<T>

    ","CloneableCartablePointerLike","mcaptcha::ArcData"],["
    Source§

    impl<T, U, A> CoerceUnsized<Arc<U, A>> for Arc<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","mcaptcha::ArcData"],["
    Source§

    impl<T, A> DerefPure for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","DerefPure","mcaptcha::ArcData"],["
    Source§

    impl<T, U> DispatchFromDyn<Arc<U>> for Arc<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Eq for Arc<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","mcaptcha::ArcData"],["
    Source§

    impl<T, A> PinCoerceUnsized for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","PinCoerceUnsized","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Send for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Send,

    ","Send","mcaptcha::ArcData"],["
    §

    impl<T> StableDeref for Arc<T>
    where\n T: ?Sized,

    ","StableDeref","mcaptcha::ArcData"],["
    1.0.0 · Source§

    impl<T, A> Sync for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Sync,

    ","Sync","mcaptcha::ArcData"],["
    1.33.0 · Source§

    impl<T, A> Unpin for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","mcaptcha::ArcData"],["
    1.9.0 · Source§

    impl<T, A> UnwindSafe for Arc<T, A>
    where\n T: RefUnwindSafe + ?Sized,\n A: Allocator + UnwindSafe,

    ","UnwindSafe","mcaptcha::ArcData"],["
    Source§

    impl<T, A> UseCloned for Arc<T, A>
    where\n A: Allocator + Clone,\n T: ?Sized,

    ","UseCloned","mcaptcha::ArcData"]]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[271891]} \ No newline at end of file diff --git a/type.impl/core/result/enum.Result.js b/type.impl/core/result/enum.Result.js index 6f4b2446..3a8f1a01 100644 --- a/type.impl/core/result/enum.Result.js +++ b/type.impl/core/result/enum.Result.js @@ -1,6 +1,9 @@ -(function() {var type_impls = { -"db_core":[["
    source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);
    \n
    1.0.0 · source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: unstable) · source

    pub fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    1.0.0 · source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls the provided closure with a reference to the contained value (if Ok).

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls the provided closure with a reference to the contained error (if Err).

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    source

    pub fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    source

    pub fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"db_core::errors::DBResult"],["
    source§

    impl<T, E> Result<&T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_core::errors::DBResult"],["
    source§

    impl<T, E> Result<&mut T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_core::errors::DBResult"],["
    source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: unstable) · source

    pub fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"db_core::errors::DBResult"],["
    source§

    impl<T, E> Result<Result<T, E>, E>

    source

    pub fn flatten(self) -> Result<T, E>

    🔬This is a nightly-only experimental API. (result_flattening)

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    #![feature(result_flattening)]\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    #![feature(result_flattening)]\nlet x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"db_core::errors::DBResult"],["
    1.61.0 · source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    source§

    fn clone(&self) -> Result<T, E>

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","db_core::errors::DBResult"],["
    source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    §

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> IntoIterator for Result<T, E>

    source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","db_core::errors::DBResult"],["
    1.16.0 · source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    source§

    fn eq(&self, other: &Result<T, E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","db_core::errors::DBResult"],["
    1.0.0 · source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","db_core::errors::DBResult"],["
    source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_core::errors::DBResult"],["
    source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_core::errors::DBResult"],["
    1.16.0 · source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","db_core::errors::DBResult"],["
    source§

    impl<T, E> Try for Result<T, E>

    §

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    §

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    source§

    fn branch(\n self\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","db_core::errors::DBResult"],["
    source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_core::errors::DBResult"],["
    source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_core::errors::DBResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","db_core::errors::DBResult"]], -"db_sqlx_maria":[["
    source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);
    \n
    1.0.0 · source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: unstable) · source

    pub fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    1.0.0 · source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls the provided closure with a reference to the contained value (if Ok).

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls the provided closure with a reference to the contained error (if Err).

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    source

    pub fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    source

    pub fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<&T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<&mut T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: unstable) · source

    pub fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<Result<T, E>, E>

    source

    pub fn flatten(self) -> Result<T, E>

    🔬This is a nightly-only experimental API. (result_flattening)

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    #![feature(result_flattening)]\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    #![feature(result_flattening)]\nlet x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.61.0 · source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    source§

    fn clone(&self) -> Result<T, E>

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    §

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> IntoIterator for Result<T, E>

    source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.16.0 · source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    source§

    fn eq(&self, other: &Result<T, E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    1.16.0 · source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Try for Result<T, E>

    §

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    §

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    source§

    fn branch(\n self\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","db_sqlx_maria::dev::prelude::dev::DBResult"],["
    §

    impl<T, E> TestTermination for Result<T, E>

    §

    fn is_success(&self) -> bool

    ","TestTermination","db_sqlx_maria::dev::prelude::dev::DBResult"]], -"db_sqlx_postgres":[["
    source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);
    \n
    1.0.0 · source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: unstable) · source

    pub fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    1.0.0 · source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls the provided closure with a reference to the contained value (if Ok).

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls the provided closure with a reference to the contained error (if Err).

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    source

    pub fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    source

    pub fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<&T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<&mut T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: unstable) · source

    pub fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Result<Result<T, E>, E>

    source

    pub fn flatten(self) -> Result<T, E>

    🔬This is a nightly-only experimental API. (result_flattening)

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    #![feature(result_flattening)]\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    #![feature(result_flattening)]\nlet x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.61.0 · source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    source§

    fn clone(&self) -> Result<T, E>

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    §

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> IntoIterator for Result<T, E>

    source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.16.0 · source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    source§

    fn eq(&self, other: &Result<T, E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.0.0 · source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    1.16.0 · source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Try for Result<T, E>

    §

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    §

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    source§

    fn branch(\n self\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","db_sqlx_postgres::dev::prelude::dev::DBResult"],["
    §

    impl<T, E> TestTermination for Result<T, E>

    §

    fn is_success(&self) -> bool

    ","TestTermination","db_sqlx_postgres::dev::prelude::dev::DBResult"]], -"mcaptcha":[["
    source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);
    \n
    1.0.0 · source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: unstable) · source

    pub fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    1.0.0 · source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls the provided closure with a reference to the contained value (if Ok).

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls the provided closure with a reference to the contained error (if Err).

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    source

    pub fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    source

    pub fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E> Result<&T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E> Result<&mut T, E>

    1.59.0 · source

    pub fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: unstable) · source

    pub fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E> Result<Result<T, E>, E>

    source

    pub fn flatten(self) -> Result<T, E>

    🔬This is a nightly-only experimental API. (result_flattening)

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    #![feature(result_flattening)]\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    #![feature(result_flattening)]\nlet x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.61.0 · source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    source§

    fn clone(&self) -> Result<T, E>

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    §

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> IntoIterator for Result<T, E>

    source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.16.0 · source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    source§

    fn eq(&self, other: &Result<T, E>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.16.0 · source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E> Try for Result<T, E>

    §

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    §

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    source§

    fn branch(\n self\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<T, E> FromRequest for Result<T, E>
    where\n T: FromRequest,\n <T as FromRequest>::Error: Into<E>,

    Extract from the request, passing error type through to handler.

    \n

    If the inner T::from_request returns an error, allow handler to receive the error rather than\nimmediately returning an error response.

    \n

    §Examples

    \n
    use actix_web::{web, dev, App, Result, Error, HttpRequest, FromRequest};\nuse actix_web::error::ErrorBadRequest;\nuse futures_util::future::{ok, err, Ready};\nuse serde::Deserialize;\nuse rand;\n\n#[derive(Debug, Deserialize)]\nstruct Thing {\n    name: String\n}\n\nimpl FromRequest for Thing {\n    type Error = Error;\n    type Future = Ready<Result<Thing, Error>>;\n\n    fn from_request(req: &HttpRequest, payload: &mut dev::Payload) -> Self::Future {\n        if rand::random() {\n            ok(Thing { name: \"thingy\".into() })\n        } else {\n            err(ErrorBadRequest(\"no luck\"))\n        }\n    }\n}\n\n/// extract `Thing` from request\nasync fn index(supplied_thing: Result<Thing>) -> String {\n    match supplied_thing {\n        Ok(thing) => format!(\"Got thing: {:?}\", thing),\n        Err(e) => format!(\"Error extracting thing: {}\", e)\n    }\n}\n\nlet app = App::new().service(\n    web::resource(\"/users/:first\").route(web::post().to(index))\n);
    \n
    §

    type Error = Infallible

    The associated error which can be returned.
    §

    type Future = FromRequestResFuture<<T as FromRequest>::Future, E>

    Future that resolves to a Self. Read more
    §

    fn from_request(\n req: &HttpRequest,\n payload: &mut Payload\n) -> <Result<T, E> as FromRequest>::Future

    Create a Self from request parts asynchronously.
    §

    fn extract(req: &HttpRequest) -> Self::Future

    Create a Self from request head asynchronously. Read more
    ","FromRequest","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<R, E> Responder for Result<R, E>
    where\n R: Responder,\n E: Into<Error>,

    §

    type Body = EitherBody<<R as Responder>::Body>

    §

    fn respond_to(\n self,\n req: &HttpRequest\n) -> HttpResponse<<Result<R, E> as Responder>::Body>

    Convert self to HttpResponse.
    §

    fn customize(self) -> CustomizeResponder<Self>
    where\n Self: Sized,

    Wraps responder to allow alteration of its response. Read more
    ","Responder","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<T, E> TestTermination for Result<T, E>

    §

    fn is_success(&self) -> bool

    ","TestTermination","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<T, E> ResultExt<T, E> for Result<T, E>

    §

    fn context<X>(self, x: X) -> Result<T, Context<X, E>>

    The method is use to add context information to current operation Read more
    ","ResultExt","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["db_core",[["
    1.0.0 · Source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    Source§

    fn clone(&self) -> Result<T, E>

    Returns a duplicate of the value. Read more
    Source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_core::errors::DBResult"],["
    Source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    Source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","db_core::errors::DBResult"],["
    Source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_core::errors::DBResult"],["
    Source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    Source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> IntoIterator for Result<T, E>

    Source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    Source§

    type Item = T

    The type of the elements being iterated over.
    Source§

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","db_core::errors::DBResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    Source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    Source§

    fn eq(&self, other: &Result<T, E>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    Source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · Source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · Source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    1.0.0 · Source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    1.0.0 · Source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    ","PartialOrd","db_core::errors::DBResult"],["
    1.16.0 · Source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    Source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","db_core::errors::DBResult"],["
    Source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    Source§

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","db_core::errors::DBResult"],["
    Source§

    impl<T, E> Result<&T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_core::errors::DBResult"],["
    Source§

    impl<T, E> Result<&mut T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_core::errors::DBResult"],["
    Source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: 1.83.0) · Source

    pub const fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"db_core::errors::DBResult"],["
    Source§

    impl<T, E> Result<Result<T, E>, E>

    1.89.0 (const: 1.89.0) · Source

    pub const fn flatten(self) -> Result<T, E>

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    let x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    let x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"db_core::errors::DBResult"],["
    Source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · Source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · Source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<String, &str> = Ok(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_ok_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · Source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, String> = Err(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_err_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 · Source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · Source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: 1.83.0) · Source

    pub const fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · Source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · Source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · Source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    Source

    pub fn map_or_default<U, F>(self, f: F) -> U
    where\n U: Default,\n F: FnOnce(T) -> U,

    🔬This is a nightly-only experimental API. (result_option_map_or_default)

    Maps a Result<T, E> to a U by applying function f to the contained\nvalue if the result is Ok, otherwise if Err, returns the\ndefault value for the type U.

    \n
    §Examples
    \n
    #![feature(result_option_map_or_default)]\n\nlet x: Result<_, &str> = Ok(\"foo\");\nlet y: Result<&str, _> = Err(\"bar\");\n\nassert_eq!(x.map_or_default(|x| x.len()), 3);\nassert_eq!(y.map_or_default(|y| y.len()), 0);
    \n
    1.0.0 · Source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · Source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls a function with a reference to the contained value if Ok.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · Source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls a function with a reference to the contained value if Err.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · Source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · Source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · Source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · Source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · Source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · Source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nPanics are meant for unrecoverable errors, and\nmay abort the entire program.

    \n

    Instead, prefer to use the ? (try) operator, or pattern matching\nto handle the Err case explicitly, or call unwrap_or,\nunwrap_or_else, or unwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · Source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · Source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · Source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    Source

    pub const fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    Source

    pub const fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · Source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · Source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · Source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · Source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · Source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · Source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"db_core::errors::DBResult"],["
    Source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_core::errors::DBResult"],["
    1.16.0 · Source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    Source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","db_core::errors::DBResult"],["
    1.61.0 · Source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    Source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","db_core::errors::DBResult"],["
    Source§

    impl<T, E> Try for Result<T, E>

    Source§

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    Source§

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    Source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    Source§

    fn branch(\n self,\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","db_core::errors::DBResult"],["
    §

    impl<T, E> TryWriteable for Result<T, E>
    where\n T: Writeable,\n E: Writeable + Clone,

    §

    type Error = E

    §

    fn try_write_to<W>(\n &self,\n sink: &mut W,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n W: Write + ?Sized,

    Writes the content of this writeable to a sink. Read more
    §

    fn try_write_to_parts<S>(\n &self,\n sink: &mut S,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n S: PartsWrite + ?Sized,

    Writes the content of this writeable to a sink with parts (annotations). Read more
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn try_write_to_string(\n &self,\n) -> Result<Cow<'_, str>, (<Result<T, E> as TryWriteable>::Error, Cow<'_, str>)>

    Writes the content of this writeable to a string. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the content of this writeable to a byte slice. Read more
    ","TryWriteable","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","db_core::errors::DBResult"],["
    1.0.0 · Source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","db_core::errors::DBResult"],["
    Source§

    impl<T, E> UseCloned for Result<T, E>
    where\n T: UseCloned,\n E: UseCloned,

    ","UseCloned","db_core::errors::DBResult"]]],["db_sqlx_maria",[["
    1.0.0 · Source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    Source§

    fn clone(&self) -> Result<T, E>

    Returns a duplicate of the value. Read more
    Source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    Source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    Source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> IntoIterator for Result<T, E>

    Source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    Source§

    type Item = T

    The type of the elements being iterated over.
    Source§

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","db_sqlx_maria::dev::DBResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    Source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    Source§

    fn eq(&self, other: &Result<T, E>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    Source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · Source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · Source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    1.0.0 · Source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    1.0.0 · Source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    ","PartialOrd","db_sqlx_maria::dev::DBResult"],["
    1.16.0 · Source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    Source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    Source§

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Result<&T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Result<&mut T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: 1.83.0) · Source

    pub const fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Result<Result<T, E>, E>

    1.89.0 (const: 1.89.0) · Source

    pub const fn flatten(self) -> Result<T, E>

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    let x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    let x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · Source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · Source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<String, &str> = Ok(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_ok_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · Source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, String> = Err(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_err_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 · Source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · Source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: 1.83.0) · Source

    pub const fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · Source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · Source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · Source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    Source

    pub fn map_or_default<U, F>(self, f: F) -> U
    where\n U: Default,\n F: FnOnce(T) -> U,

    🔬This is a nightly-only experimental API. (result_option_map_or_default)

    Maps a Result<T, E> to a U by applying function f to the contained\nvalue if the result is Ok, otherwise if Err, returns the\ndefault value for the type U.

    \n
    §Examples
    \n
    #![feature(result_option_map_or_default)]\n\nlet x: Result<_, &str> = Ok(\"foo\");\nlet y: Result<&str, _> = Err(\"bar\");\n\nassert_eq!(x.map_or_default(|x| x.len()), 3);\nassert_eq!(y.map_or_default(|y| y.len()), 0);
    \n
    1.0.0 · Source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · Source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls a function with a reference to the contained value if Ok.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · Source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls a function with a reference to the contained value if Err.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · Source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · Source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · Source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · Source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · Source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · Source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nPanics are meant for unrecoverable errors, and\nmay abort the entire program.

    \n

    Instead, prefer to use the ? (try) operator, or pattern matching\nto handle the Err case explicitly, or call unwrap_or,\nunwrap_or_else, or unwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · Source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · Source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · Source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    Source

    pub const fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    Source

    pub const fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · Source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · Source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · Source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · Source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · Source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · Source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_maria::dev::DBResult"],["
    1.16.0 · Source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    Source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","db_sqlx_maria::dev::DBResult"],["
    1.61.0 · Source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    Source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","db_sqlx_maria::dev::DBResult"],["
    §

    impl<T, E> TestTermination for Result<T, E>

    §

    fn is_success(&self) -> bool

    ","TestTermination","db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> Try for Result<T, E>

    Source§

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    Source§

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    Source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    Source§

    fn branch(\n self,\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","db_sqlx_maria::dev::DBResult"],["
    §

    impl<T, E> TryWriteable for Result<T, E>
    where\n T: Writeable,\n E: Writeable + Clone,

    §

    type Error = E

    §

    fn try_write_to<W>(\n &self,\n sink: &mut W,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n W: Write + ?Sized,

    Writes the content of this writeable to a sink. Read more
    §

    fn try_write_to_parts<S>(\n &self,\n sink: &mut S,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n S: PartsWrite + ?Sized,

    Writes the content of this writeable to a sink with parts (annotations). Read more
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn try_write_to_string(\n &self,\n) -> Result<Cow<'_, str>, (<Result<T, E> as TryWriteable>::Error, Cow<'_, str>)>

    Writes the content of this writeable to a string. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the content of this writeable to a byte slice. Read more
    ","TryWriteable","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","db_sqlx_maria::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","db_sqlx_maria::dev::DBResult"],["
    Source§

    impl<T, E> UseCloned for Result<T, E>
    where\n T: UseCloned,\n E: UseCloned,

    ","UseCloned","db_sqlx_maria::dev::DBResult"]]],["db_sqlx_postgres",[["
    1.0.0 · Source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    Source§

    fn clone(&self) -> Result<T, E>

    Returns a duplicate of the value. Read more
    Source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    Source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    Source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> IntoIterator for Result<T, E>

    Source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    Source§

    type Item = T

    The type of the elements being iterated over.
    Source§

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","db_sqlx_postgres::dev::DBResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    Source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    Source§

    fn eq(&self, other: &Result<T, E>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    Source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · Source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · Source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    1.0.0 · Source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    1.0.0 · Source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    ","PartialOrd","db_sqlx_postgres::dev::DBResult"],["
    1.16.0 · Source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    Source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    Source§

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Result<&T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Result<&mut T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: 1.83.0) · Source

    pub const fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Result<Result<T, E>, E>

    1.89.0 (const: 1.89.0) · Source

    pub const fn flatten(self) -> Result<T, E>

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    let x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    let x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · Source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · Source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<String, &str> = Ok(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_ok_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · Source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, String> = Err(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_err_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 · Source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · Source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: 1.83.0) · Source

    pub const fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · Source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · Source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · Source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    Source

    pub fn map_or_default<U, F>(self, f: F) -> U
    where\n U: Default,\n F: FnOnce(T) -> U,

    🔬This is a nightly-only experimental API. (result_option_map_or_default)

    Maps a Result<T, E> to a U by applying function f to the contained\nvalue if the result is Ok, otherwise if Err, returns the\ndefault value for the type U.

    \n
    §Examples
    \n
    #![feature(result_option_map_or_default)]\n\nlet x: Result<_, &str> = Ok(\"foo\");\nlet y: Result<&str, _> = Err(\"bar\");\n\nassert_eq!(x.map_or_default(|x| x.len()), 3);\nassert_eq!(y.map_or_default(|y| y.len()), 0);
    \n
    1.0.0 · Source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · Source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls a function with a reference to the contained value if Ok.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · Source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls a function with a reference to the contained value if Err.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · Source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · Source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · Source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · Source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · Source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · Source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nPanics are meant for unrecoverable errors, and\nmay abort the entire program.

    \n

    Instead, prefer to use the ? (try) operator, or pattern matching\nto handle the Err case explicitly, or call unwrap_or,\nunwrap_or_else, or unwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · Source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · Source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · Source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    Source

    pub const fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    Source

    pub const fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · Source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · Source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · Source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · Source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · Source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · Source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","db_sqlx_postgres::dev::DBResult"],["
    1.16.0 · Source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    Source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","db_sqlx_postgres::dev::DBResult"],["
    1.61.0 · Source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    Source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","db_sqlx_postgres::dev::DBResult"],["
    §

    impl<T, E> TestTermination for Result<T, E>

    §

    fn is_success(&self) -> bool

    ","TestTermination","db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> Try for Result<T, E>

    Source§

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    Source§

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    Source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    Source§

    fn branch(\n self,\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","db_sqlx_postgres::dev::DBResult"],["
    §

    impl<T, E> TryWriteable for Result<T, E>
    where\n T: Writeable,\n E: Writeable + Clone,

    §

    type Error = E

    §

    fn try_write_to<W>(\n &self,\n sink: &mut W,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n W: Write + ?Sized,

    Writes the content of this writeable to a sink. Read more
    §

    fn try_write_to_parts<S>(\n &self,\n sink: &mut S,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n S: PartsWrite + ?Sized,

    Writes the content of this writeable to a sink with parts (annotations). Read more
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn try_write_to_string(\n &self,\n) -> Result<Cow<'_, str>, (<Result<T, E> as TryWriteable>::Error, Cow<'_, str>)>

    Writes the content of this writeable to a string. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the content of this writeable to a byte slice. Read more
    ","TryWriteable","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","db_sqlx_postgres::dev::DBResult"],["
    1.0.0 · Source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","db_sqlx_postgres::dev::DBResult"],["
    Source§

    impl<T, E> UseCloned for Result<T, E>
    where\n T: UseCloned,\n E: UseCloned,

    ","UseCloned","db_sqlx_postgres::dev::DBResult"]]],["mcaptcha",[["
    1.0.0 · Source§

    impl<T, E> Clone for Result<T, E>
    where\n T: Clone,\n E: Clone,

    Source§

    fn clone(&self) -> Result<T, E>

    Returns a duplicate of the value. Read more
    Source§

    fn clone_from(&mut self, source: &Result<T, E>)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> Debug for Result<T, E>
    where\n T: Debug,\n E: Debug,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<'de, T, E> Deserialize<'de> for Result<T, E>
    where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
    where\n V: FromIterator<A>,

    Source§

    fn from_iter<I>(iter: I) -> Result<V, E>
    where\n I: IntoIterator<Item = Result<A, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

    \n

    Here is an example which increments every integer in a vector,\nchecking for overflow:

    \n\n
    let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or(\"Overflow!\")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or(\"Underflow!\")\n).collect();\nassert_eq!(res, Err(\"Underflow!\"));
    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

    \n\n
    let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or(\"Underflow!\")\n}).collect();\nassert_eq!(res, Err(\"Underflow!\"));\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<T, E> FromRequest for Result<T, E>
    where\n T: FromRequest,\n <T as FromRequest>::Error: Into<E>,

    Extract from the request, passing error type through to handler.

    \n

    If the inner T::from_request returns an error, allow handler to receive the error rather than\nimmediately returning an error response.

    \n

    §Examples

    \n
    use actix_web::{web, dev, App, Result, Error, HttpRequest, FromRequest};\nuse actix_web::error::ErrorBadRequest;\nuse futures_util::future::{ok, err, Ready};\nuse serde::Deserialize;\nuse rand;\n\n#[derive(Debug, Deserialize)]\nstruct Thing {\n    name: String\n}\n\nimpl FromRequest for Thing {\n    type Error = Error;\n    type Future = Ready<Result<Thing, Error>>;\n\n    fn from_request(req: &HttpRequest, payload: &mut dev::Payload) -> Self::Future {\n        if rand::random() {\n            ok(Thing { name: \"thingy\".into() })\n        } else {\n            err(ErrorBadRequest(\"no luck\"))\n        }\n    }\n}\n\n/// extract `Thing` from request\nasync fn index(supplied_thing: Result<Thing>) -> String {\n    match supplied_thing {\n        Ok(thing) => format!(\"Got thing: {thing:?}\"),\n        Err(err) => format!(\"Error extracting thing: {err}\"),\n    }\n}\n\nlet app = App::new().service(\n    web::resource(\"/users/:first\").route(web::post().to(index))\n);
    \n
    §

    type Error = Infallible

    The associated error which can be returned.
    §

    type Future = FromRequestResFuture<<T as FromRequest>::Future, E>

    Future that resolves to a Self. Read more
    §

    fn from_request(\n req: &HttpRequest,\n payload: &mut Payload,\n) -> <Result<T, E> as FromRequest>::Future

    Create a Self from request parts asynchronously.
    §

    fn extract(req: &HttpRequest) -> Self::Future

    Create a Self from request head asynchronously. Read more
    ","FromRequest","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>
    where\n F: From<E>,

    Source§

    fn from_residual(_: Yeet<E>) -> Result<T, F>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> Hash for Result<T, E>
    where\n T: Hash,\n E: Hash,

    Source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · Source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> IntoIterator for Result<T, E>

    Source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
    \n
    Source§

    type Item = T

    The type of the elements being iterated over.
    Source§

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<A, M, I, E> MessageResponse<A, M> for Result<I, E>
    where\n A: Actor,\n M: Message<Result = Result<I, E>>,\n I: 'static,\n E: 'static,

    §

    fn handle(self, _: &mut <A as Actor>::Context, tx: Option<Sender<Result<I, E>>>)

    ","MessageResponse","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> Ord for Result<T, E>
    where\n T: Ord,\n E: Ord,

    Source§

    fn cmp(&self, other: &Result<T, E>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · Source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · Source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · Source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized,

    Restrict a value to a certain interval. Read more
    ","Ord","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> PartialEq for Result<T, E>
    where\n T: PartialEq,\n E: PartialEq,

    Source§

    fn eq(&self, other: &Result<T, E>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
    ","PartialEq","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> PartialOrd for Result<T, E>
    where\n T: PartialOrd,\n E: PartialOrd,

    Source§

    fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · Source§

    fn lt(&self, other: &Rhs) -> bool

    Tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · Source§

    fn le(&self, other: &Rhs) -> bool

    Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
    1.0.0 · Source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the >\noperator. Read more
    1.0.0 · Source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
    ","PartialOrd","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<B, E> Policy<B, E> for Result<Action, E>
    where\n E: Clone,

    §

    fn redirect(&mut self, _: &Attempt<'_>) -> Result<Action, E>

    Invoked when the service received a response with a redirection status code (3xx). Read more
    §

    fn on_request(&mut self, _request: &mut Request<B>)

    Invoked right before the service makes a request, regardless of whether it is redirected\nor not. Read more
    §

    fn clone_body(&self, _body: &B) -> Option<B>

    Try to clone a request body before the service makes a redirected request. Read more
    ","Policy","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.16.0 · Source§

    impl<T, U, E> Product<Result<U, E>> for Result<T, E>
    where\n T: Product<U>,

    Source§

    fn product<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

    \n
    §Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
    \n
    ","Product>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Residual<T> for Result<Infallible, E>

    Source§

    type TryType = Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2_residual)
    The “return” type of this meta-function.
    ","Residual","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<E> Responder for Result<(), E>
    where\n E: Into<Error>,

    §

    type Body = BoxBody

    §

    fn respond_to(self, _req: &HttpRequest) -> HttpResponse

    Convert self to HttpResponse.
    §

    fn customize(self) -> CustomizeResponder<Self>
    where\n Self: Sized,

    Wraps responder to allow alteration of its response. Read more
    ","Responder","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<R, E> Responder for Result<R, E>
    where\n R: Responder,\n E: Into<Error>,

    §

    type Body = EitherBody<<R as Responder>::Body>

    §

    fn respond_to(\n self,\n req: &HttpRequest,\n) -> HttpResponse<<Result<R, E> as Responder>::Body>

    Convert self to HttpResponse.
    §

    fn customize(self) -> CustomizeResponder<Self>
    where\n Self: Sized,

    Wraps responder to allow alteration of its response. Read more
    ","Responder","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Result<&T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Result<&mut T, E>

    1.59.0 (const: 1.83.0) · Source

    pub const fn copied(self) -> Result<T, E>
    where\n T: Copy,

    Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
    \n
    1.59.0 · Source

    pub fn cloned(self) -> Result<T, E>
    where\n T: Clone,

    Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

    \n
    §Examples
    \n
    let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Result<Option<T>, E>

    1.33.0 (const: 1.83.0) · Source

    pub const fn transpose(self) -> Option<Result<T, E>>

    Transposes a Result of an Option into an Option of a Result.

    \n

    Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

    \n
    §Examples
    \n
    #[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Result<Result<T, E>, E>

    1.89.0 (const: 1.89.0) · Source

    pub const fn flatten(self) -> Result<T, E>

    Converts from Result<Result<T, E>, E> to Result<T, E>

    \n
    §Examples
    \n
    let x: Result<Result<&'static str, u32>, u32> = Ok(Ok(\"hello\"));\nassert_eq!(Ok(\"hello\"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
    \n

    Flattening only removes one level of nesting at a time:

    \n\n
    let x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok(\"hello\")));\nassert_eq!(Ok(Ok(\"hello\")), x.flatten());\nassert_eq!(Ok(\"hello\"), x.flatten().flatten());
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Result<T, E>

    1.0.0 (const: 1.48.0) · Source

    pub const fn is_ok(&self) -> bool

    Returns true if the result is Ok.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_ok(), false);
    \n
    1.70.0 · Source

    pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the result is Ok and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err(\"hey\");\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<String, &str> = Ok(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_ok_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn is_err(&self) -> bool

    Returns true if the result is Err.

    \n
    §Examples
    \n
    let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err(\"Some error message\");\nassert_eq!(x.is_err(), true);
    \n
    1.70.0 · Source

    pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

    Returns true if the result is Err and the value inside of it matches a predicate.

    \n
    §Examples
    \n
    use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, \"!\"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, String> = Err(\"ownership\".to_string());\nassert_eq!(x.as_ref().is_err_and(|x| x.len() > 1), true);\nprintln!(\"still alive {:?}\", x);
    \n
    1.0.0 · Source

    pub fn ok(self) -> Option<T>

    Converts from Result<T, E> to Option<T>.

    \n

    Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.ok(), None);
    \n
    1.0.0 · Source

    pub fn err(self) -> Option<E>

    Converts from Result<T, E> to Option<E>.

    \n

    Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err(\"Nothing here\");\nassert_eq!(x.err(), Some(\"Nothing here\"));
    \n
    1.0.0 (const: 1.48.0) · Source

    pub const fn as_ref(&self) -> Result<&T, &E>

    Converts from &Result<T, E> to Result<&T, &E>.

    \n

    Produces a new Result, containing a reference\ninto the original, leaving the original in place.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err(\"Error\");\nassert_eq!(x.as_ref(), Err(&\"Error\"));
    \n
    1.0.0 (const: 1.83.0) · Source

    pub const fn as_mut(&mut self) -> Result<&mut T, &mut E>

    Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

    \n
    §Examples
    \n
    fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
    \n
    1.0.0 · Source

    pub fn map<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

    \n

    This function can be used to compose the results of two functions.

    \n
    §Examples
    \n

    Print the numbers on each line of a string multiplied by two.

    \n\n
    let line = \"1\\n2\\n3\\n4\\n\";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!(\"{n}\"),\n        Err(..) => {}\n    }\n}
    \n
    1.41.0 · Source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let x: Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.41.0 · Source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

    Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

    \n

    This function can be used to unpack a successful result\nwhile handling an error.

    \n
    §Examples
    \n
    let k = 21;\n\nlet x : Result<_, &str> = Ok(\"foo\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err(\"bar\");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
    \n
    Source

    pub fn map_or_default<U, F>(self, f: F) -> U
    where\n U: Default,\n F: FnOnce(T) -> U,

    🔬This is a nightly-only experimental API. (result_option_map_or_default)

    Maps a Result<T, E> to a U by applying function f to the contained\nvalue if the result is Ok, otherwise if Err, returns the\ndefault value for the type U.

    \n
    §Examples
    \n
    #![feature(result_option_map_or_default)]\n\nlet x: Result<_, &str> = Ok(\"foo\");\nlet y: Result<&str, _> = Err(\"bar\");\n\nassert_eq!(x.map_or_default(|x| x.len()), 3);\nassert_eq!(y.map_or_default(|y| y.len()), 0);
    \n
    1.0.0 · Source

    pub fn map_err<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> F,

    Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

    \n

    This function can be used to pass through a successful result while handling\nan error.

    \n
    §Examples
    \n
    fn stringify(x: u32) -> String { format!(\"error code: {x}\") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err(\"error code: 13\".to_string()));
    \n
    1.76.0 · Source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls a function with a reference to the contained value if Ok.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    let x: u8 = \"4\"\n    .parse::<u8>()\n    .inspect(|x| println!(\"original: {x}\"))\n    .map(|x| x.pow(3))\n    .expect(\"failed to parse number\");
    \n
    1.76.0 · Source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls a function with a reference to the contained value if Err.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    use std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string(\"address.txt\")\n        .inspect_err(|e| eprintln!(\"failed to read file: {e}\"))\n}
    \n
    1.47.0 · Source

    pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>
    where\n T: Deref,

    Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

    \n

    Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

    \n
    §Examples
    \n
    let x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&str, &u32> = Ok(\"hello\");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
    \n
    1.47.0 · Source

    pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>
    where\n T: DerefMut,

    Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

    \n

    Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

    \n
    §Examples
    \n
    let mut s = \"HELLO\".to_string();\nlet mut x: Result<String, u32> = Ok(\"hello\".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
    \n
    1.0.0 · Source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · Source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n

    The iterator yields one value if the result is Result::Ok, otherwise none.

    \n
    §Examples
    \n
    let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err(\"nothing!\");\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.4.0 · Source

    pub fn expect(self, msg: &str) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.expect(\"Testing expect\"); // panics with `Testing expect: emergency failure`
    \n
    §Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

    \n\n
    let path = std::env::var(\"IMPORTANT_PATH\")\n    .expect(\"env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

    \n
    1.0.0 · Source

    pub fn unwrap(self) -> T
    where\n E: Debug,

    Returns the contained Ok value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nPanics are meant for unrecoverable errors, and\nmay abort the entire program.

    \n

    Instead, prefer to use the ? (try) operator, or pattern matching\nto handle the Err case explicitly, or call unwrap_or,\nunwrap_or_else, or unwrap_or_default.

    \n
    §Panics
    \n

    Panics if the value is an Err, with a panic message provided by the\nErr’s value.

    \n
    §Examples
    \n

    Basic usage:

    \n\n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nx.unwrap(); // panics with `emergency failure`
    \n
    1.16.0 · Source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Ok value or a default

    \n

    Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

    \n
    §Examples
    \n

    Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

    \n\n
    let good_year_from_input = \"1909\";\nlet bad_year_from_input = \"190blarg\";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
    \n
    1.17.0 · Source

    pub fn expect_err(self, msg: &str) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(10);\nx.expect_err(\"Testing expect_err\"); // panics with `Testing expect_err: 10`
    \n
    1.0.0 · Source

    pub fn unwrap_err(self) -> E
    where\n T: Debug,

    Returns the contained Err value, consuming the self value.

    \n
    §Panics
    \n

    Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(x.unwrap_err(), \"emergency failure\");
    \n
    Source

    pub const fn into_ok(self) -> T
    where\n E: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Ok value, but never panics.

    \n

    Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

    \n
    §Examples
    \n
    \nfn only_good_news() -> Result<String, !> {\n    Ok(\"this is fine\".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!(\"{s}\");
    \n
    Source

    pub const fn into_err(self) -> E
    where\n T: Into<!>,

    🔬This is a nightly-only experimental API. (unwrap_infallible)

    Returns the contained Err value, but never panics.

    \n

    Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

    \n
    §Examples
    \n
    \nfn only_bad_news() -> Result<!, String> {\n    Err(\"Oops, it failed\".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!(\"{error}\");
    \n
    1.0.0 · Source

    pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

    Returns res if the result is Ok, otherwise returns the Err value of self.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<&str, &str> = Ok(\"foo\");\nassert_eq!(x.and(y), Err(\"early error\"));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<&str, &str> = Err(\"late error\");\nassert_eq!(x.and(y), Err(\"not a 2\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok(\"different result type\");\nassert_eq!(x.and(y), Ok(\"different result type\"));
    \n
    1.0.0 · Source

    pub fn and_then<U, F>(self, op: F) -> Result<U, E>
    where\n F: FnOnce(T) -> Result<U, E>,

    Calls op if the result is Ok, otherwise returns the Err value of self.

    \n

    This function can be used for control flow based on Result values.

    \n
    §Examples
    \n
    fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or(\"overflowed\")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err(\"overflowed\"));\nassert_eq!(Err(\"not a number\").and_then(sq_then_to_string), Err(\"not a number\"));
    \n

    Often used to chain fallible operations that may return Err.

    \n\n
    use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows \"/\" maps to \"C:\\\"\nlet root_modified_time = Path::new(\"/\").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new(\"/bad/path\").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
    \n
    1.0.0 · Source

    pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

    Returns res if the result is Err, otherwise returns the Ok value of self.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"early error\");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err(\"not a 2\");\nlet y: Result<u32, &str> = Err(\"late error\");\nassert_eq!(x.or(y), Err(\"late error\"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
    \n
    1.0.0 · Source

    pub fn or_else<F, O>(self, op: O) -> Result<T, F>
    where\n O: FnOnce(E) -> Result<T, F>,

    Calls op if the result is Err, otherwise returns the Ok value of self.

    \n

    This function can be used for control flow based on result values.

    \n
    §Examples
    \n
    fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
    \n
    1.0.0 · Source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Ok value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    §Examples
    \n
    let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err(\"error\");\nassert_eq!(x.unwrap_or(default), default);
    \n
    1.0.0 · Source

    pub fn unwrap_or_else<F>(self, op: F) -> T
    where\n F: FnOnce(E) -> T,

    Returns the contained Ok value or computes it from a closure.

    \n
    §Examples
    \n
    fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err(\"foo\").unwrap_or_else(count), 3);
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

    \n
    §Safety
    \n

    Calling this method on an Err is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
    \n
    1.58.0 · Source

    pub unsafe fn unwrap_err_unchecked(self) -> E

    Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

    \n
    §Safety
    \n

    Calling this method on an Ok is undefined behavior.

    \n
    §Examples
    \n
    let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
    \n\n
    let x: Result<u32, &str> = Err(\"emergency failure\");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, \"emergency failure\");
    \n
    ",0,"mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Serialize for Result<T, E>
    where\n T: Serialize,\n E: Serialize,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.16.0 · Source§

    impl<T, U, E> Sum<Result<U, E>> for Result<T, E>
    where\n T: Sum<U>,

    Source§

    fn sum<I>(iter: I) -> Result<T, E>
    where\n I: Iterator<Item = Result<U, E>>,

    Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

    \n
    §Examples
    \n

    This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

    \n\n
    let f = |&x: &i32| if x < 0 { Err(\"Negative element found\") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err(\"Negative element found\"));
    \n
    ","Sum>","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.61.0 · Source§

    impl<T, E> Termination for Result<T, E>
    where\n T: Termination,\n E: Debug,

    Source§

    fn report(self) -> ExitCode

    Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
    ","Termination","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<T, E> TestTermination for Result<T, E>

    §

    fn is_success(&self) -> bool

    ","TestTermination","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> Try for Result<T, E>

    Source§

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    Source§

    type Residual = Result<Infallible, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    Source§

    fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    Source§

    fn branch(\n self,\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    §

    impl<T, E> TryWriteable for Result<T, E>
    where\n T: Writeable,\n E: Writeable + Clone,

    §

    type Error = E

    §

    fn try_write_to<W>(\n &self,\n sink: &mut W,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n W: Write + ?Sized,

    Writes the content of this writeable to a sink. Read more
    §

    fn try_write_to_parts<S>(\n &self,\n sink: &mut S,\n) -> Result<Result<(), <Result<T, E> as TryWriteable>::Error>, Error>
    where\n S: PartsWrite + ?Sized,

    Writes the content of this writeable to a sink with parts (annotations). Read more
    §

    fn writeable_length_hint(&self) -> LengthHint

    Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
    §

    fn try_write_to_string(\n &self,\n) -> Result<Cow<'_, str>, (<Result<T, E> as TryWriteable>::Error, Cow<'_, str>)>

    Writes the content of this writeable to a string. Read more
    §

    fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

    Compares the content of this writeable to a byte slice. Read more
    ","TryWriteable","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    1.0.0 · Source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"],["
    Source§

    impl<T, E> UseCloned for Result<T, E>
    where\n T: UseCloned,\n E: UseCloned,

    ","UseCloned","mcaptcha::errors::ServiceResult","mcaptcha::errors::PageResult"]]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[177421,178359,178449,191184]} \ No newline at end of file diff --git a/type.impl/lettre/transport/smtp/async_transport/struct.AsyncSmtpTransport.js b/type.impl/lettre/transport/smtp/async_transport/struct.AsyncSmtpTransport.js index 2c2e3ceb..ec220af8 100644 --- a/type.impl/lettre/transport/smtp/async_transport/struct.AsyncSmtpTransport.js +++ b/type.impl/lettre/transport/smtp/async_transport/struct.AsyncSmtpTransport.js @@ -1,3 +1,9 @@ -(function() {var type_impls = { -"mcaptcha":[["
    source§

    impl<E> AsyncSmtpTransport<E>
    where\n E: Executor,

    source

    pub fn relay(relay: &str) -> Result<AsyncSmtpTransportBuilder, Error>

    Simple and secure transport, using TLS connections to communicate with the SMTP server

    \n

    The right option for most SMTP servers.

    \n

    Creates an encrypted transport over submissions port, using the provided domain\nto validate TLS certificates.

    \n
    source

    pub fn starttls_relay(relay: &str) -> Result<AsyncSmtpTransportBuilder, Error>

    Simple an secure transport, using STARTTLS to obtain encrypted connections

    \n

    Alternative to AsyncSmtpTransport::relay, for SMTP servers\nthat don’t take SMTPS connections.

    \n

    Creates an encrypted transport over submissions port, by first connecting using\nan unencrypted connection and then upgrading it with STARTTLS. The provided\ndomain is used to validate TLS certificates.

    \n

    An error is returned if the connection can’t be upgraded. No credentials\nor emails will be sent to the server, protecting from downgrade attacks.

    \n
    source

    pub fn unencrypted_localhost() -> AsyncSmtpTransport<E>

    Creates a new local SMTP client to port 25

    \n

    Shortcut for local unencrypted relay (typical local email daemon that will handle relaying)

    \n
    source

    pub fn builder_dangerous<T>(server: T) -> AsyncSmtpTransportBuilder
    where\n T: Into<String>,

    Creates a new SMTP client

    \n

    Defaults are:

    \n
      \n
    • No authentication
    • \n
    • No TLS
    • \n
    • A 60 seconds timeout for smtp commands
    • \n
    • Port 25
    • \n
    \n

    Consider using AsyncSmtpTransport::relay or\nAsyncSmtpTransport::starttls_relay instead,\nif possible.

    \n
    source

    pub async fn test_connection(&self) -> Result<bool, Error>

    Tests the SMTP connection

    \n

    test_connection() tests the connection by using the SMTP NOOP command.\nThe connection is closed afterwards if a connection pool is not used.

    \n
    ",0,"mcaptcha::data::Mailer"],["
    source§

    impl<E> Debug for AsyncSmtpTransport<E>
    where\n E: Executor,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::data::Mailer"],["
    source§

    impl AsyncTransport for AsyncSmtpTransport<Tokio1Executor>

    source§

    fn send_raw<'life0, 'life1, 'life2, 'async_trait>(\n &'life0 self,\n envelope: &'life1 Envelope,\n email: &'life2 [u8]\n) -> Pin<Box<dyn Future<Output = Result<<AsyncSmtpTransport<Tokio1Executor> as AsyncTransport>::Ok, <AsyncSmtpTransport<Tokio1Executor> as AsyncTransport>::Error>> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n 'life1: 'async_trait,\n 'life2: 'async_trait,\n AsyncSmtpTransport<Tokio1Executor>: 'async_trait,

    Sends an email

    \n
    §

    type Ok = Response

    Response produced by the Transport
    §

    type Error = Error

    Error produced by the Transport
    source§

    fn send<'life0, 'async_trait>(\n &'life0 self,\n message: Message\n) -> Pin<Box<dyn Future<Output = Result<Self::Ok, Self::Error>> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n Self: Sync + 'async_trait,

    Sends the email
    ","AsyncTransport","mcaptcha::data::Mailer"],["
    source§

    impl<E> Clone for AsyncSmtpTransport<E>
    where\n E: Executor,

    source§

    fn clone(&self) -> AsyncSmtpTransport<E>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::data::Mailer"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["mcaptcha",[["
    Source§

    impl<E> AsyncSmtpTransport<E>
    where\n E: Executor,

    Source

    pub fn relay(relay: &str) -> Result<AsyncSmtpTransportBuilder, Error>

    Simple and secure transport, using TLS connections to communicate with the SMTP server

    \n

    The right option for most SMTP servers.

    \n

    Creates an encrypted transport over submissions port, using the provided domain\nto validate TLS certificates.

    \n
    Source

    pub fn starttls_relay(relay: &str) -> Result<AsyncSmtpTransportBuilder, Error>

    Simple and secure transport, using STARTTLS to obtain encrypted connections

    \n

    Alternative to AsyncSmtpTransport::relay, for SMTP servers\nthat don’t take SMTPS connections.

    \n

    Creates an encrypted transport over submissions port, by first connecting using\nan unencrypted connection and then upgrading it with STARTTLS. The provided\ndomain is used to validate TLS certificates.

    \n

    An error is returned if the connection can’t be upgraded. No credentials\nor emails will be sent to the server, protecting from downgrade attacks.

    \n
    Source

    pub fn unencrypted_localhost() -> AsyncSmtpTransport<E>

    Creates a new local SMTP client to port 25

    \n

    Shortcut for local unencrypted relay (typical local email daemon that will handle relaying)

    \n
    Source

    pub fn builder_dangerous<T>(server: T) -> AsyncSmtpTransportBuilder
    where\n T: Into<String>,

    Creates a new SMTP client

    \n

    Defaults are:

    \n
      \n
    • No authentication
    • \n
    • No TLS
    • \n
    • A 60-seconds timeout for smtp commands
    • \n
    • Port 25
    • \n
    \n

    Consider using AsyncSmtpTransport::relay or\nAsyncSmtpTransport::starttls_relay instead,\nif possible.

    \n
    Source

    pub fn from_url(\n connection_url: &str,\n) -> Result<AsyncSmtpTransportBuilder, Error>

    Creates a AsyncSmtpTransportBuilder from a connection URL

    \n

    The protocol, credentials, host, port and EHLO name can be provided\nin a single URL. This may be simpler than having to configure SMTP\nthrough multiple configuration parameters and then having to pass\nthose options to lettre.

    \n

    The URL is created in the following way:\nscheme://user:pass@hostname:port/ehlo-name?tls=TLS.

    \n

    user (Username) and pass (Password) are optional in case the\nSMTP relay doesn’t require authentication. When port is not\nconfigured it is automatically determined based on the scheme.\nehlo-name optionally overwrites the hostname sent for the EHLO\ncommand. TLS controls whether STARTTLS is simply enabled\n(opportunistic - not enough to prevent man-in-the-middle attacks)\nor required (require the server to upgrade the connection to\nSTARTTLS, otherwise fail on suspicion of main-in-the-middle attempt).

    \n

    Use the following table to construct your SMTP url:

    \n
    \n\n\n\n\n
    schemetls query parameterexampledefault portremarks
    smtpsunsetsmtps://user:pass@hostname:port465SMTP over TLS, recommended method
    smtprequiredsmtp://user:pass@hostname:port?tls=required587SMTP with STARTTLS required, when SMTP over TLS is not available
    smtpopportunisticsmtp://user:pass@hostname:port?tls=opportunistic587SMTP with optionally STARTTLS when supported by the server. Not suitable for production use: vulnerable to a man-in-the-middle attack
    smtpunsetsmtp://user:pass@hostname:port587Always unencrypted SMTP. Not suitable for production use: sends all data unencrypted
    \n
    \n

    IMPORTANT: some parameters like user and pass cannot simply\nbe concatenated to construct the final URL because special characters\ncontained within the parameter may confuse the URL decoder.\nManually URL encode the parameters before concatenating them or use\na proper URL encoder, like the following cargo script:

    \n\n
    #!/usr/bin/env cargo\n\n//! ```cargo\n//! [dependencies]\n//! url = \"2\"\n//! ```\n\nuse url::Url;\n\nfn main() {\n    // don't touch this line\n    let mut url = Url::parse(\"foo://bar\").unwrap();\n\n    // configure the scheme (`smtp` or `smtps`) here.\n    url.set_scheme(\"smtps\").unwrap();\n    // configure the username and password.\n    // remove the following two lines if unauthenticated.\n    url.set_username(\"username\").unwrap();\n    url.set_password(Some(\"password\")).unwrap();\n    // configure the hostname\n    url.set_host(Some(\"smtp.example.com\")).unwrap();\n    // configure the port - only necessary if using a non-default port\n    url.set_port(Some(465)).unwrap();\n    // configure the EHLO name\n    url.set_path(\"ehlo-name\");\n\n    println!(\"{url}\");\n}
    \n

    The connection URL can then be used in the following way:

    \n\n
    use lettre::{\n    message::header::ContentType, transport::smtp::authentication::Credentials,\n    AsyncSmtpTransport, AsyncTransport, Message, Tokio1Executor,\n};\n\nlet email = Message::builder()\n    .from(\"NoBody <nobody@domain.tld>\".parse().unwrap())\n    .reply_to(\"Yuin <yuin@domain.tld>\".parse().unwrap())\n    .to(\"Hei <hei@domain.tld>\".parse().unwrap())\n    .subject(\"Happy new year\")\n    .header(ContentType::TEXT_PLAIN)\n    .body(String::from(\"Be happy!\"))\n    .unwrap();\n\n// Open a remote connection to gmail\nlet mailer: AsyncSmtpTransport<Tokio1Executor> =\n    AsyncSmtpTransport::<Tokio1Executor>::from_url(\n        \"smtps://username:password@smtp.example.com:465\",\n    )?\n    .build();\n\n// Send the email\nmailer.send(email).await?;
    \n
    Source

    pub async fn test_connection(&self) -> Result<bool, Error>

    Tests the SMTP connection

    \n

    test_connection() tests the connection by using the SMTP NOOP command.\nThe connection is closed afterward if a connection pool is not used.

    \n
    ",0,"mcaptcha::data::Mailer"],["
    Source§

    impl AsyncTransport for AsyncSmtpTransport<Tokio1Executor>

    Source§

    fn send_raw<'life0, 'life1, 'life2, 'async_trait>(\n &'life0 self,\n envelope: &'life1 Envelope,\n email: &'life2 [u8],\n) -> Pin<Box<dyn Future<Output = Result<<AsyncSmtpTransport<Tokio1Executor> as AsyncTransport>::Ok, <AsyncSmtpTransport<Tokio1Executor> as AsyncTransport>::Error>> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n 'life1: 'async_trait,\n 'life2: 'async_trait,\n AsyncSmtpTransport<Tokio1Executor>: 'async_trait,

    Sends an email

    \n
    Source§

    type Ok = Response

    Response produced by the Transport
    Source§

    type Error = Error

    Error produced by the Transport
    Source§

    fn shutdown<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n AsyncSmtpTransport<Tokio1Executor>: 'async_trait,

    Shuts down the transport. Future calls to Self::send and\nSelf::send_raw might fail.
    Source§

    fn send<'life0, 'async_trait>(\n &'life0 self,\n message: Message,\n) -> Pin<Box<dyn Future<Output = Result<Self::Ok, Self::Error>> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n Self: Sync + 'async_trait,

    Sends the email
    ","AsyncTransport","mcaptcha::data::Mailer"],["
    Source§

    impl<E> Clone for AsyncSmtpTransport<E>
    where\n E: Executor,

    Source§

    fn clone(&self) -> AsyncSmtpTransport<E>

    Returns a duplicate of the value. Read more
    1.0.0 · Source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","mcaptcha::data::Mailer"],["
    Source§

    impl<E> Debug for AsyncSmtpTransport<E>
    where\n E: Executor,

    Source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","mcaptcha::data::Mailer"]]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[30416]} \ No newline at end of file diff --git a/type.impl/std/primitive.tuple.js b/type.impl/std/primitive.tuple.js index d0a94e44..310fc17f 100644 --- a/type.impl/std/primitive.tuple.js +++ b/type.impl/std/primitive.tuple.js @@ -1,3 +1,9 @@ -(function() {var type_impls = { -"mcaptcha":[["
    1.56.0 · source§

    impl<A, B, ExtendA, ExtendB> Extend<(A, B)> for (ExtendA, ExtendB)
    where\n ExtendA: Extend<A>,\n ExtendB: Extend<B>,

    source§

    fn extend<T>(&mut self, into_iter: T)
    where\n T: IntoIterator<Item = (A, B)>,

    Allows to extend a tuple of collections that also implement Extend.

    \n

    See also: Iterator::unzip

    \n
    §Examples
    \n
    let mut tuple = (vec![0], vec![1]);\ntuple.extend([(2, 3), (4, 5), (6, 7)]);\nassert_eq!(tuple.0, [0, 2, 4, 6]);\nassert_eq!(tuple.1, [1, 3, 5, 7]);\n\n// also allows for arbitrarily nested tuples as elements\nlet mut nested_tuple = (vec![1], (vec![2], vec![3]));\nnested_tuple.extend([(4, (5, 6)), (7, (8, 9))]);\n\nlet (a, (b, c)) = nested_tuple;\nassert_eq!(a, [1, 4, 7]);\nassert_eq!(b, [2, 5, 8]);\nassert_eq!(c, [3, 6, 9]);
    \n
    source§

    fn extend_one(&mut self, item: (A, B))

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend<(A, B)>","mcaptcha::static_assets::static_files::assets::Img"],["
    1.71.0 · source§

    impl<T> From<[T; 2]> for (T, T)

    source§

    fn from(array: [T; 2]) -> (T, T)

    Converts to this type from the input type.
    ","From<[T; 2]>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> HttpServiceFactory for (A, B)
    where\n A: HttpServiceFactory,\n B: HttpServiceFactory,

    §

    fn register(self, config: &mut AppService)

    ","HttpServiceFactory","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> FromRequest for (A, B)
    where\n A: FromRequest + 'static,\n B: FromRequest + 'static,

    FromRequest implementation for tuple

    \n
    §

    type Error = Error

    The associated error which can be returned.
    §

    type Future = TupleFromRequest2<A, B>

    Future that resolves to a Self. Read more
    §

    fn from_request(\n req: &HttpRequest,\n payload: &mut Payload\n) -> <(A, B) as FromRequest>::Future

    Create a Self from request parts asynchronously.
    §

    fn extract(req: &HttpRequest) -> Self::Future

    Create a Self from request head asynchronously. Read more
    ","FromRequest","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D> Handler<(A, B, C, D)> for Func
    where\n Func: Fn(A, B, C, D) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B, C, D)) -> <Func as Handler<(A, B, C, D)>>::Future

    ","Handler<(A, B, C, D)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A> Handler<(A,)> for Func
    where\n Func: Fn(A) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A,)) -> <Func as Handler<(A,)>>::Future

    ","Handler<(A,)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K> Handler<(A, B, C, D, E, F, G, H, I, J, K)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J, K)\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J, K)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J> Handler<(A, B, C, D, E, F, G, H, I, J)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J)\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B> Handler<(A, B)> for Func
    where\n Func: Fn(A, B) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B)) -> <Func as Handler<(A, B)>>::Future

    ","Handler<(A, B)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G> Handler<(A, B, C, D, E, F, G)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G)\n) -> <Func as Handler<(A, B, C, D, E, F, G)>>::Future

    ","Handler<(A, B, C, D, E, F, G)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C> Handler<(A, B, C)> for Func
    where\n Func: Fn(A, B, C) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B, C)) -> <Func as Handler<(A, B, C)>>::Future

    ","Handler<(A, B, C)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I> Handler<(A, B, C, D, E, F, G, H, I)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I)\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H> Handler<(A, B, C, D, E, F, G, H)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H)\n) -> <Func as Handler<(A, B, C, D, E, F, G, H)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E> Handler<(A, B, C, D, E)> for Func
    where\n Func: Fn(A, B, C, D, E) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B, C, D, E)) -> <Func as Handler<(A, B, C, D, E)>>::Future

    ","Handler<(A, B, C, D, E)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F> Handler<(A, B, C, D, E, F)> for Func
    where\n Func: Fn(A, B, C, D, E, F) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F)\n) -> <Func as Handler<(A, B, C, D, E, F)>>::Future

    ","Handler<(A, B, C, D, E, F)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K, L> Handler<(A, B, C, D, E, F, G, H, I, J, K, L)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J, K, L)\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J, K, L)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K, L)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<V> TryIntoHeaderPair for (&str, V)
    where\n V: TryIntoHeaderValue,\n <V as TryIntoHeaderValue>::Error: Into<InvalidHeaderValue>,

    §

    type Error = InvalidHeaderPart

    §

    fn try_into_pair(\n self\n) -> Result<(HeaderName, HeaderValue), <(&str, V) as TryIntoHeaderPair>::Error>

    ","TryIntoHeaderPair","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<'de, T0, T1> Deserialize<'de> for (T0, T1)
    where\n T0: Deserialize<'de>,\n T1: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D\n) -> Result<(T0, T1), <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<T0, T1> Serialize for (T0, T1)
    where\n T0: Serialize,\n T1: Serialize,

    source§

    fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, A, B> Parser<Input> for (A, B)
    where\n Input: Stream,\n <Input as StreamOnce>::Error: ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>,\n A: Parser<Input>,\n B: Parser<Input>,

    §

    type Output = (<A as Parser<Input>>::Output, <B as Parser<Input>>::Output)

    The type which is returned if the parser is successful.
    §

    type PartialState = PartialState2<SequenceState<<A as Parser<Input>>::Output, <A as Parser<Input>>::PartialState>, SequenceState<<B as Parser<Input>>::Output, <B as Parser<Input>>::PartialState>>

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, errors: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Parser<Input> + Sized,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Parser<Input> + Sized,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<M, 'a, 's>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Parser<Input> + Sized,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self\n) -> Box<dyn Parser<Input, Output = Self::Output, PartialState = Self::PartialState> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, Output, Y, Z> ChoiceParser<Input> for (Y, Z)
    where\n Input: Stream,\n Y: Parser<Input, Output = Output>,\n Z: Parser<Input, Output = Output>,

    §

    type Output = Output

    §

    type PartialState = Y<<Y as Parser<Input>>::PartialState, <Z as Parser<Input>>::PartialState>

    §

    fn parse_partial(\n &mut self,\n input: &mut Input,\n state: &mut <(Y, Z) as ChoiceParser<Input>>::PartialState\n) -> ParseResult<<(Y, Z) as ChoiceParser<Input>>::Output, <Input as StreamOnce>::Error>

    §

    fn parse_first(\n &mut self,\n input: &mut Input,\n state: &mut <(Y, Z) as ChoiceParser<Input>>::PartialState\n) -> ParseResult<<(Y, Z) as ChoiceParser<Input>>::Output, <Input as StreamOnce>::Error>

    §

    fn parse_mode_choice<Mode>(\n &mut self,\n mode: Mode,\n input: &mut Input,\n state: &mut <(Y, Z) as ChoiceParser<Input>>::PartialState\n) -> ParseResult<<(Y, Z) as ChoiceParser<Input>>::Output, <Input as StreamOnce>::Error>
    where\n Mode: ParseMode,

    §

    fn add_error_choice(\n &mut self,\n error: &mut Tracked<<Input as StreamOnce>::Error>\n)

    ","ChoiceParser","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, A, B, Error, FnA, FnB> Tuple<Input, (A, B), Error> for (FnA, FnB)
    where\n Input: Clone,\n Error: ParseError<Input>,\n FnA: Parser<Input, A, Error>,\n FnB: Parser<Input, B, Error>,

    §

    fn parse(&mut self, input: Input) -> Result<(Input, (A, B)), Err<Error>>

    Parses the input and returns a tuple of results of each parser.
    ","Tuple","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, A, B, Error, FnA, FnB> Permutation<Input, (A, B), Error> for (FnA, FnB)
    where\n Input: Clone,\n Error: ParseError<Input>,\n FnA: Parser<Input, A, Error>,\n FnB: Parser<Input, B, Error>,

    §

    fn permutation(&mut self, input: Input) -> Result<(Input, (A, B)), Err<Error>>

    Tries to apply all parsers in the tuple in various orders until all of them succeed
    ","Permutation","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, Output, Error, A, B> Alt<Input, Output, Error> for (A, B)
    where\n Input: Clone,\n Error: ParseError<Input>,\n A: Parser<Input, Output, Error>,\n B: Parser<Input, Output, Error>,

    §

    fn choice(&mut self, input: Input) -> Result<(Input, Output), Err<Error>>

    Tests each parser in the tuple and returns the result of the first one that succeeds
    ","Alt","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<'r, R, T1, T2> FromRow<'r, R> for (T1, T2)
    where\n R: Row,\n usize: ColumnIndex<R>,\n T1: Decode<'r, <R as Row>::Database> + Type<<R as Row>::Database>,\n T2: Decode<'r, <R as Row>::Database> + Type<<R as Row>::Database>,

    §

    fn from_row(row: &'r R) -> Result<(T1, T2), Error>

    ","FromRow<'r, R>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE, F, FromF, G, FromG, H, FromH, I, FromI> MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E, F, G, H, I)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,\n FromF: Default + Extend<F>,\n FromG: Default + Extend<G>,\n FromH: Default + Extend<H>,\n FromI: Default + Extend<I>,

    source§

    fn multiunzip(\n self\n) -> (FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE, F, FromF> MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E, F)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,\n FromF: Default + Extend<F>,

    source§

    fn multiunzip(self) -> (FromA, FromB, FromC, FromD, FromE, FromF)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD> MultiUnzip<(FromA, FromB, FromC, FromD)> for IT
    where\n IT: Iterator<Item = (A, B, C, D)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,

    source§

    fn multiunzip(self) -> (FromA, FromB, FromC, FromD)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE, F, FromF, G, FromG, H, FromH, I, FromI, J, FromJ> MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E, F, G, H, I, J)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,\n FromF: Default + Extend<F>,\n FromG: Default + Extend<G>,\n FromH: Default + Extend<H>,\n FromI: Default + Extend<I>,\n FromJ: Default + Extend<J>,

    source§

    fn multiunzip(\n self\n) -> (FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE, F, FromF, G, FromG> MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E, F, G)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,\n FromF: Default + Extend<F>,\n FromG: Default + Extend<G>,

    source§

    fn multiunzip(self) -> (FromA, FromB, FromC, FromD, FromE, FromF, FromG)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC> MultiUnzip<(FromA, FromB, FromC)> for IT
    where\n IT: Iterator<Item = (A, B, C)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,

    source§

    fn multiunzip(self) -> (FromA, FromB, FromC)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE, F, FromF, G, FromG, H, FromH> MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E, F, G, H)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,\n FromF: Default + Extend<F>,\n FromG: Default + Extend<G>,\n FromH: Default + Extend<H>,

    source§

    fn multiunzip(self) -> (FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE> MultiUnzip<(FromA, FromB, FromC, FromD, FromE)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,

    source§

    fn multiunzip(self) -> (FromA, FromB, FromC, FromD, FromE)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB> MultiUnzip<(FromA, FromB)> for IT
    where\n IT: Iterator<Item = (A, B)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,

    source§

    fn multiunzip(self) -> (FromA, FromB)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE, F, FromF, G, FromG, H, FromH, I, FromI, J, FromJ, K, FromK, L, FromL> MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ, FromK, FromL)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E, F, G, H, I, J, K, L)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,\n FromF: Default + Extend<F>,\n FromG: Default + Extend<G>,\n FromH: Default + Extend<H>,\n FromI: Default + Extend<I>,\n FromJ: Default + Extend<J>,\n FromK: Default + Extend<K>,\n FromL: Default + Extend<L>,

    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ, FromK, FromL)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA> MultiUnzip<(FromA,)> for IT
    where\n IT: Iterator<Item = (A,)>,\n FromA: Default + Extend<A>,

    source§

    fn multiunzip(self) -> (FromA,)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA,)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<IT, A, FromA, B, FromB, C, FromC, D, FromD, E, FromE, F, FromF, G, FromG, H, FromH, I, FromI, J, FromJ, K, FromK> MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ, FromK)> for IT
    where\n IT: Iterator<Item = (A, B, C, D, E, F, G, H, I, J, K)>,\n FromA: Default + Extend<A>,\n FromB: Default + Extend<B>,\n FromC: Default + Extend<C>,\n FromD: Default + Extend<D>,\n FromE: Default + Extend<E>,\n FromF: Default + Extend<F>,\n FromG: Default + Extend<G>,\n FromH: Default + Extend<H>,\n FromI: Default + Extend<I>,\n FromJ: Default + Extend<J>,\n FromK: Default + Extend<K>,

    source§

    fn multiunzip(\n self\n) -> (FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ, FromK)

    Unzip this iterator into multiple collections.
    ","MultiUnzip<(FromA, FromB, FromC, FromD, FromE, FromF, FromG, FromH, FromI, FromJ, FromK)>","mcaptcha::static_assets::static_files::assets::Img"],["
    source§

    impl<S, T> Bounded for (S, T)
    where\n S: Bounded,\n T: Bounded,

    source§

    fn min_value() -> (S, T)

    Returns the smallest finite number this type can represent
    source§

    fn max_value() -> (S, T)

    Returns the largest finite number this type can represent
    ","Bounded","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> Zeroize for (A, B)
    where\n A: Zeroize,\n B: Zeroize,

    §

    fn zeroize(&mut self)

    Zero out this object from memory using Rust intrinsics which ensure the\nzeroization operation is not “optimized away” by the compiler.
    ","Zeroize","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> ZeroizeOnDrop for (A, B)
    where\n A: ZeroizeOnDrop,\n B: ZeroizeOnDrop,

    ","ZeroizeOnDrop","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<T1, T2> PgHasArrayType for (T1, T2)

    §

    fn array_type_info() -> PgTypeInfo

    §

    fn array_compatible(ty: &PgTypeInfo) -> bool

    ","PgHasArrayType","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<T1, T2> Type<Postgres> for (T1, T2)

    §

    fn type_info() -> PgTypeInfo

    Returns the canonical SQL type for this Rust type. Read more
    §

    fn compatible(ty: &<DB as Database>::TypeInfo) -> bool

    Determines if this Rust type is compatible with the given SQL type. Read more
    ","Type","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<'r, T1, T2> Decode<'r, Postgres> for (T1, T2)
    where\n T1: 'r + Type<Postgres> + for<'a> Decode<'a, Postgres>,\n T2: 'r + Type<Postgres> + for<'a> Decode<'a, Postgres>,

    §

    fn decode(\n value: PgValueRef<'r>\n) -> Result<(T1, T2), Box<dyn Error + Send + Sync>>

    Decode a new value of this type using a raw value from the database.
    ","Decode<'r, Postgres>","mcaptcha::static_assets::static_files::assets::Img"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["mcaptcha",[["
    §

    impl<I, Output, Error, Alt2, Alt3> Alt<I, Output, Error> for (Alt2, Alt3)
    where\n I: Stream,\n Error: ParserError<I>,\n Alt2: Parser<I, Output, Error>,\n Alt3: Parser<I, Output, Error>,

    §

    fn choice(&mut self, input: &mut I) -> Result<Output, Error>

    Tests each parser in the tuple and returns the result of the first one that succeeds
    ","Alt","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> AsULE for (A, B)
    where\n A: AsULE,\n B: AsULE,

    §

    type ULE = Tuple2ULE<<A as AsULE>::ULE, <B as AsULE>::ULE>

    The ULE type corresponding to Self. Read more
    §

    fn to_unaligned(self) -> <(A, B) as AsULE>::ULE

    Converts from Self to Self::ULE. Read more
    §

    fn from_unaligned(unaligned: <(A, B) as AsULE>::ULE) -> (A, B)

    Converts from Self::ULE to Self. Read more
    ","AsULE","mcaptcha::static_assets::static_files::assets::Img"],["
    Source§

    impl<S, T> Bounded for (S, T)
    where\n S: Bounded,\n T: Bounded,

    Source§

    fn min_value() -> (S, T)

    Returns the smallest finite number this type can represent
    Source§

    fn max_value() -> (S, T)

    Returns the largest finite number this type can represent
    ","Bounded","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<T, A> Chain<T> for (A, T)
    where\n A: Chain<T>,

    §

    fn len(&self) -> usize

    The number of items that this chain link consists of.
    §

    fn append_to(self, v: &mut Vec<T>)

    Append the elements in this link to the chain.
    ","Chain","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, Output, Y, Z> ChoiceParser<Input> for (Y, Z)
    where\n Input: Stream,\n Y: Parser<Input, Output = Output>,\n Z: Parser<Input, Output = Output>,

    §

    type Output = Output

    §

    type PartialState = Y<<Y as Parser<Input>>::PartialState, <Z as Parser<Input>>::PartialState>

    §

    fn parse_partial(\n &mut self,\n input: &mut Input,\n state: &mut <(Y, Z) as ChoiceParser<Input>>::PartialState,\n) -> ParseResult<<(Y, Z) as ChoiceParser<Input>>::Output, <Input as StreamOnce>::Error>

    §

    fn parse_first(\n &mut self,\n input: &mut Input,\n state: &mut <(Y, Z) as ChoiceParser<Input>>::PartialState,\n) -> ParseResult<<(Y, Z) as ChoiceParser<Input>>::Output, <Input as StreamOnce>::Error>

    §

    fn parse_mode_choice<Mode>(\n &mut self,\n mode: Mode,\n input: &mut Input,\n state: &mut <(Y, Z) as ChoiceParser<Input>>::PartialState,\n) -> ParseResult<<(Y, Z) as ChoiceParser<Input>>::Output, <Input as StreamOnce>::Error>
    where\n Mode: ParseMode,

    §

    fn add_error_choice(\n &mut self,\n error: &mut Tracked<<Input as StreamOnce>::Error>,\n)

    ","ChoiceParser","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<T, F1, F2> ContainsToken<T> for (F1, F2)
    where\n T: Clone,\n F1: ContainsToken<T>,\n F2: ContainsToken<T>,

    §

    fn contains_token(&self, token: T) -> bool

    Returns true if self contains the token
    ","ContainsToken","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<'r, T1, T2> Decode<'r, Postgres> for (T1, T2)
    where\n T1: 'r + Type<Postgres> + for<'a> Decode<'a, Postgres>,\n T2: 'r + Type<Postgres> + for<'a> Decode<'a, Postgres>,

    §

    fn decode(\n value: PgValueRef<'r>,\n) -> Result<(T1, T2), Box<dyn Error + Sync + Send>>

    Decode a new value of this type using a raw value from the database.
    ","Decode<'r, Postgres>","mcaptcha::static_assets::static_files::assets::Img"],["
    Source§

    impl<'de, T0, T1> Deserialize<'de> for (T0, T1)
    where\n T0: Deserialize<'de>,\n T1: Deserialize<'de>,

    Source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<(T0, T1), <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> FromRequest for (A, B)
    where\n A: FromRequest + 'static,\n B: FromRequest + 'static,

    FromRequest implementation for tuple

    \n
    §

    type Error = Error

    The associated error which can be returned.
    §

    type Future = TupleFromRequest2<A, B>

    Future that resolves to a Self. Read more
    §

    fn from_request(\n req: &HttpRequest,\n payload: &mut Payload,\n) -> <(A, B) as FromRequest>::Future

    Create a Self from request parts asynchronously.
    §

    fn extract(req: &HttpRequest) -> Self::Future

    Create a Self from request head asynchronously. Read more
    ","FromRequest","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<'r, R, T1, T2> FromRow<'r, R> for (T1, T2)
    where\n R: Row,\n usize: ColumnIndex<R>,\n T1: Decode<'r, <R as Row>::Database> + Type<<R as Row>::Database>,\n T2: Decode<'r, <R as Row>::Database> + Type<<R as Row>::Database>,

    §

    fn from_row(row: &'r R) -> Result<(T1, T2), Error>

    ","FromRow<'r, R>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A> Handler<(A,)> for Func
    where\n Func: Fn(A) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A,)) -> <Func as Handler<(A,)>>::Future

    ","Handler<(A,)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B> Handler<(A, B)> for Func
    where\n Func: Fn(A, B) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B)) -> <Func as Handler<(A, B)>>::Future

    ","Handler<(A, B)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C> Handler<(A, B, C)> for Func
    where\n Func: Fn(A, B, C) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B, C)) -> <Func as Handler<(A, B, C)>>::Future

    ","Handler<(A, B, C)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D> Handler<(A, B, C, D)> for Func
    where\n Func: Fn(A, B, C, D) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B, C, D)) -> <Func as Handler<(A, B, C, D)>>::Future

    ","Handler<(A, B, C, D)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E> Handler<(A, B, C, D, E)> for Func
    where\n Func: Fn(A, B, C, D, E) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(&self, _: (A, B, C, D, E)) -> <Func as Handler<(A, B, C, D, E)>>::Future

    ","Handler<(A, B, C, D, E)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F> Handler<(A, B, C, D, E, F)> for Func
    where\n Func: Fn(A, B, C, D, E, F) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F),\n) -> <Func as Handler<(A, B, C, D, E, F)>>::Future

    ","Handler<(A, B, C, D, E, F)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G> Handler<(A, B, C, D, E, F, G)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G),\n) -> <Func as Handler<(A, B, C, D, E, F, G)>>::Future

    ","Handler<(A, B, C, D, E, F, G)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H> Handler<(A, B, C, D, E, F, G, H)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I> Handler<(A, B, C, D, E, F, G, H, I)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J> Handler<(A, B, C, D, E, F, G, H, I, J)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K> Handler<(A, B, C, D, E, F, G, H, I, J, K)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J, K),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J, K)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K, L> Handler<(A, B, C, D, E, F, G, H, I, J, K, L)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J, K, L),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J, K, L)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K, L)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K, L, M> Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K, L, M) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J, K, L, M),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K, L, M, N> Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K, L, M, N) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J, K, L, M, N),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) -> Fut + Clone + 'static,\n Fut: Future,

    §

    type Output = <Fut as Future>::Output

    §

    type Future = Fut

    §

    fn call(\n &self,\n _: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O),\n) -> <Func as Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)>>::Future

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Func, Fut, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)> for Func
    where\n Func: Fn(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) -> Fut + Clone + 'static,\n Fut: Future,

    ","Handler<(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> HttpServiceFactory for (A, B)
    where\n A: HttpServiceFactory,\n B: HttpServiceFactory,

    §

    fn register(self, config: &mut AppService)

    ","HttpServiceFactory","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<S, L1, L2> Layer<S> for (L1, L2)
    where\n L1: Layer<<L2 as Layer<S>>::Service>,\n L2: Layer<S>,

    §

    type Service = <L1 as Layer<<L2 as Layer<S>>::Service>>::Service

    The wrapped service
    §

    fn layer(&self, service: S) -> <(L1, L2) as Layer<S>>::Service

    Wrap the given service with the middleware, returning a new service\nthat has been decorated with the middleware.
    ","Layer","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<I, O1, O2, E, P1, P2> Parser<I> for (P1, P2)
    where\n E: ParseError<I>,\n P1: Parser<I, Output = O1, Error = E>,\n P2: Parser<I, Output = O2, Error = E>,

    §

    type Output = (O1, O2)

    Type of the produced value
    §

    type Error = E

    Error type of this parser
    §

    fn process<OM>(\n &mut self,\n i: I,\n) -> Result<(I, <<OM as OutputMode>::Output as Mode>::Output<<(P1, P2) as Parser<I>>::Output>), Err<<(P1, P2) as Parser<I>>::Error, <<OM as OutputMode>::Error as Mode>::Output<<(P1, P2) as Parser<I>>::Error>>>
    where\n OM: OutputMode,

    A parser takes in input type, and returns a Result containing\neither the remaining input and the output value, or an error
    §

    fn parse(\n &mut self,\n input: Input,\n) -> Result<(Input, Self::Output), Err<Self::Error>>

    A parser takes in input type, and returns a Result containing\neither the remaining input and the output value, or an error
    §

    fn parse_complete(\n &mut self,\n input: Input,\n) -> Result<(Input, Self::Output), Err<Self::Error>>

    A parser takes in input type, and returns a Result containing\neither the remaining input and the output value, or an error
    §

    fn map<G, O2>(self, g: G) -> Map<Self, G>
    where\n G: FnMut(Self::Output) -> O2,\n Self: Sized,

    Maps a function over the result of a parser
    §

    fn map_res<G, O2, E2>(self, g: G) -> MapRes<Self, G>
    where\n G: FnMut(Self::Output) -> Result<O2, E2>,\n Self::Error: FromExternalError<Input, E2>,\n Self: Sized,

    Applies a function returning a Result over the result of a parser.
    §

    fn map_opt<G, O2>(self, g: G) -> MapOpt<Self, G>
    where\n G: FnMut(Self::Output) -> Option<O2>,\n Self: Sized,

    Applies a function returning an Option over the result of a parser.
    §

    fn flat_map<G, H>(self, g: G) -> FlatMap<Self, G>
    where\n G: FnMut(Self::Output) -> H,\n H: Parser<Input, Error = Self::Error>,\n Self: Sized,

    Creates a second parser from the output of the first one, then apply over the rest of the input
    §

    fn and_then<G>(self, g: G) -> AndThen<Self, G>
    where\n G: Parser<Self::Output, Error = Self::Error>,\n Self: Sized,

    Applies a second parser over the output of the first one
    §

    fn and<G, O2>(self, g: G) -> And<Self, G>
    where\n G: Parser<Input, Output = O2, Error = Self::Error>,\n Self: Sized,

    Applies a second parser after the first one, return their results as a tuple
    §

    fn or<G>(self, g: G) -> Or<Self, G>
    where\n G: Parser<Input, Output = Self::Output, Error = Self::Error>,\n Self: Sized,

    Applies a second parser over the input if the first one failed
    §

    fn into<O2, E2>(self) -> Into<Self, O2, E2>
    where\n O2: From<Self::Output>,\n E2: From<Self::Error>,\n Self: Sized,

    automatically converts the parser’s output and error values to another type, as long as they\nimplement the From trait
    ","Parser","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<I, O0, O1, E, P0, P1> Parser<I, (O0, O1), E> for (P0, P1)
    where\n I: Stream,\n E: ParserError<I>,\n P0: Parser<I, O0, E>,\n P1: Parser<I, O1, E>,

    §

    fn parse_next(&mut self, i: &mut I) -> Result<(O0, O1), E>

    Take tokens from the [Stream], turning it into the output Read more
    §

    fn parse(\n &mut self,\n input: I,\n) -> Result<O, ParseError<I, <E as ParserError<I>>::Inner>>
    where\n Self: Sized,\n I: Stream + StreamIsPartial,\n E: ParserError<I>,\n <E as ParserError<I>>::Inner: ParserError<I>,

    Parse all of input, generating O from it Read more
    §

    fn parse_peek(&mut self, input: I) -> Result<(I, O), E>

    Take tokens from the [Stream], turning it into the output Read more
    §

    fn by_ref(&mut self) -> ByRef<'_, Self, I, O, E>
    where\n Self: Sized,

    Treat &mut Self as a parser Read more
    §

    fn value<O2>(self, val: O2) -> Value<Self, I, O, O2, E>
    where\n Self: Sized,\n O2: Clone,

    Produce the provided value Read more
    §

    fn default_value<O2>(self) -> DefaultValue<Self, I, O, O2, E>
    where\n Self: Sized,\n O2: Default,

    Produce a type’s default value Read more
    §

    fn void(self) -> Void<Self, I, O, E>
    where\n Self: Sized,

    Discards the output of the Parser Read more
    §

    fn output_into<O2>(self) -> OutputInto<Self, I, O, O2, E>
    where\n Self: Sized,\n O: Into<O2>,

    Convert the parser’s output to another type using std::convert::From Read more
    §

    fn take(self) -> Take<Self, I, O, E>
    where\n Self: Sized,\n I: Stream,

    Produce the consumed input as produced value. Read more
    §

    fn with_taken(self) -> WithTaken<Self, I, O, E>
    where\n Self: Sized,\n I: Stream,

    Produce the consumed input with the output Read more
    §

    fn span(self) -> Span<Self, I, O, E>
    where\n Self: Sized,\n I: Stream + Location,

    Produce the location of the consumed input as produced value. Read more
    §

    fn with_span(self) -> WithSpan<Self, I, O, E>
    where\n Self: Sized,\n I: Stream + Location,

    Produce the location of consumed input with the output Read more
    §

    fn map<G, O2>(self, map: G) -> Map<Self, G, I, O, O2, E>
    where\n G: FnMut(O) -> O2,\n Self: Sized,

    Maps a function over the output of a parser Read more
    §

    fn try_map<G, O2, E2>(self, map: G) -> TryMap<Self, G, I, O, O2, E, E2>
    where\n Self: Sized,\n G: FnMut(O) -> Result<O2, E2>,\n I: Stream,\n E: FromExternalError<I, E2> + ParserError<I>,

    Applies a function returning a Result over the output of a parser. Read more
    §

    fn verify_map<G, O2>(self, map: G) -> VerifyMap<Self, G, I, O, O2, E>
    where\n Self: Sized,\n G: FnMut(O) -> Option<O2>,\n I: Stream,\n E: ParserError<I>,

    Apply both [Parser::verify] and [Parser::map]. Read more
    §

    fn flat_map<G, H, O2>(self, map: G) -> FlatMap<Self, G, H, I, O, O2, E>
    where\n Self: Sized,\n G: FnMut(O) -> H,\n H: Parser<I, O2, E>,

    Creates a parser from the output of this one Read more
    §

    fn and_then<G, O2>(self, inner: G) -> AndThen<Self, G, I, O, O2, E>
    where\n Self: Sized,\n G: Parser<O, O2, E>,\n O: StreamIsPartial,\n I: Stream,

    Applies a second parser over the output of the first one Read more
    §

    fn parse_to<O2>(self) -> ParseTo<Self, I, O, O2, E>
    where\n Self: Sized,\n I: Stream,\n O: ParseSlice<O2>,\n E: ParserError<I>,

    Apply std::str::FromStr to the output of the parser Read more
    §

    fn verify<G, O2>(self, filter: G) -> Verify<Self, G, I, O, O2, E>
    where\n Self: Sized,\n G: FnMut(&O2) -> bool,\n I: Stream,\n O: Borrow<O2>,\n E: ParserError<I>,\n O2: ?Sized,

    Returns the output of the child parser if it satisfies a verification function. Read more
    §

    fn context<C>(self, context: C) -> Context<Self, I, O, E, C>
    where\n Self: Sized,\n I: Stream,\n E: AddContext<I, C> + ParserError<I>,\n C: Clone + Debug,

    If parsing fails, add context to the error Read more
    §

    fn context_with<F, C, FI>(\n self,\n context: F,\n) -> ContextWith<Self, I, O, E, F, C, FI>
    where\n Self: Sized,\n I: Stream,\n E: AddContext<I, C> + ParserError<I>,\n F: Fn() -> FI + Clone,\n C: Debug,\n FI: Iterator<Item = C>,

    If parsing fails, dynamically add context to the error Read more
    §

    fn map_err<G, E2>(self, map: G) -> MapErr<Self, G, I, O, E, E2>
    where\n G: FnMut(E) -> E2,\n Self: Sized,

    Maps a function over the error of a parser Read more
    §

    fn complete_err(self) -> CompleteErr<Self, I, O, E>
    where\n Self: Sized,

    Transforms [Incomplete][crate::error::ErrMode::Incomplete] into [Backtrack][crate::error::ErrMode::Backtrack] Read more
    §

    fn err_into<E2>(self) -> ErrInto<Self, I, O, E, E2>
    where\n Self: Sized,\n E: Into<E2>,

    Convert the parser’s error to another type using std::convert::From
    ","Parser","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, A, B> Parser<Input> for (A, B)
    where\n Input: Stream,\n A: Parser<Input>,\n B: Parser<Input>,

    §

    type Output = (<A as Parser<Input>>::Output, <B as Parser<Input>>::Output)

    The type which is returned if the parser is successful.
    §

    type PartialState = PartialState2<SequenceState<<A as Parser<Input>>::Output, <A as Parser<Input>>::PartialState>, SequenceState<<B as Parser<Input>>::Output, <B as Parser<Input>>::PartialState>>

    Determines the state necessary to resume parsing after more input is supplied. Read more
    §

    fn add_error(&mut self, errors: &mut Tracked<<Input as StreamOnce>::Error>)

    Adds the first error that would normally be returned by this parser if it failed with an\nPeekErr result. Read more
    §

    fn parse(\n &mut self,\n input: Input,\n) -> Result<(Self::Output, Input), <Input as StreamOnce>::Error>

    Entry point of the parser. Takes some input and tries to parse it. Read more
    §

    fn parse_with_state(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> Result<Self::Output, <Input as StreamOnce>::Error>

    Entry point of the parser when using partial parsing.\nTakes some input and tries to parse it. Read more
    §

    fn parse_stream(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_lazy(\n &mut self,\n input: &mut Input,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Parses using the stream input by calling Stream::uncons one or more times. Read more
    §

    fn parse_stream_partial(\n &mut self,\n input: &mut Input,\n state: &mut Self::PartialState,\n) -> ParseResult<Self::Output, <Input as StreamOnce>::Error>

    Like parse_stream but supports partial parsing.
    §

    fn by_ref(&mut self) -> &mut Self
    where\n Self: Sized,

    Borrows a parser instead of consuming it. Read more
    §

    fn with<P2>(self, p: P2) -> With<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the self parser and returns the value of p.\nFails if any of the parsers fails. Read more
    §

    fn skip<P2>(self, p: P2) -> Skip<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input>,

    Discards the value of the p parser and returns the value of self.\nFails if any of the parsers fails. Read more
    §

    fn and<P2>(self, p: P2) -> (Self, P2)
    where\n Self: Sized,\n P2: Parser<Input>,

    Parses with self followed by p.\nSucceeds if both parsers succeed, otherwise fails.\nReturns a tuple with both values on success. Read more
    §

    fn or<P2>(self, p: P2) -> Or<Self, P2>
    where\n Self: Sized,\n P2: Parser<Input, Output = Self::Output>,

    Returns a parser which attempts to parse using self. If self fails without committing\nit tries to consume the same input using p. Read more
    §

    fn then<N, F>(self, f: F) -> Then<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes the value to f which returns a parser used to parse\nthe rest of the input. Read more
    §

    fn then_partial<N, F>(self, f: F) -> ThenPartial<Self, F>
    where\n Self: Sized,\n F: FnMut(&mut Self::Output) -> N,\n N: Parser<Input>,

    Variant of then which parses using self and then passes the value to f as a &mut reference. Read more
    §

    fn then_ref<N, F>(self, f: F) -> ThenRef<Self, F>
    where\n Self: Sized,\n F: FnMut(&Self::Output) -> N,\n N: Parser<Input>,

    Parses using self and then passes a reference to the value to f which returns a parser\nused to parse the rest of the input. The value is then combined with the output of f. Read more
    §

    fn map<F, B>(self, f: F) -> Map<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> B,

    Uses f to map over the parsed value. Read more
    §

    fn map_input<F, B>(self, f: F) -> MapInput<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output, &mut Input) -> B,

    §

    fn flat_map<F, B>(self, f: F) -> FlatMap<Self, F>
    where\n Self: Sized,\n F: FnMut(Self::Output) -> Result<B, <Input as StreamOnce>::Error>,

    Uses f to map over the output of self. If f returns an error the parser fails. Read more
    §

    fn message<S>(self, msg: S) -> Message<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails, adds the message msg to the error. Read more
    §

    fn expected<S>(self, msg: S) -> Expected<Self, S>
    where\n Self: Sized,\n S: for<'s> ErrorInfo<'s, <Input as StreamOnce>::Token, <Input as StreamOnce>::Range>,

    Parses with self and if it fails without consuming any input any expected errors are\nreplaced by msg. msg is then used in error messages as “Expected msg”. Read more
    §

    fn silent(self) -> Silent<Self>
    where\n Self: Sized,

    Parses with self, if it fails without consuming any input any expected errors that would\notherwise be emitted by self are suppressed. Read more
    §

    fn and_then<F, O, E>(self, f: F) -> AndThen<Self, F>
    where\n Self: Sized + Parser<Input>,\n F: FnMut(Self::Output) -> Result<O, E>,\n E: Into<<<Input as StreamOnce>::Error as ParseError<<Input as StreamOnce>::Token, <Input as StreamOnce>::Range, <Input as StreamOnce>::Position>>::StreamError>,

    Parses with self and applies f on the result if self parses successfully.\nf may optionally fail with an error which is automatically converted to a ParseError. Read more
    §

    fn iter(\n self,\n input: &mut Input,\n) -> Iter<'_, Input, Self, Self::PartialState, FirstMode>
    where\n Self: Sized + Parser<Input>,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn partial_iter<'a, 's, M>(\n self,\n mode: M,\n input: &'a mut Input,\n partial_state: &'s mut Self::PartialState,\n) -> Iter<'a, Input, Self, &'s mut Self::PartialState, M>
    where\n Self: Sized + Parser<Input>,\n M: ParseMode,

    Creates an iterator from a parser and a state. Can be used as an alternative to many\nwhen collecting directly into a Extend type is not desirable. Read more
    §

    fn boxed<'a>(\n self,\n) -> Box<dyn Parser<Input, PartialState = Self::PartialState, Output = Self::Output> + 'a>
    where\n Self: Sized + 'a,

    Turns the parser into a trait object by putting it in a Box. Can be used to easily\nreturn parsers from functions without naming the type. Read more
    §

    fn left<R>(self) -> Either<Self, R>
    where\n Self: Sized,\n R: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn right<L>(self) -> Either<L, Self>
    where\n Self: Sized,\n L: Parser<Input, Output = Self::Output>,

    Wraps the parser into the Either enum which allows combinators such as then to return\nmultiple different parser types (merging them to one) Read more
    §

    fn spanned(self) -> Spanned<Self>
    where\n Self: Sized,

    Marks errors produced inside the self parser with the span from the start of the parse to\nthe end of it. Read more
    ","Parser","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<I, O1, O2, Error, P1, P2> Permutation<I, (O1, O2), Error> for (P1, P2)
    where\n I: Stream,\n Error: ParserError<I>,\n P1: Parser<I, O1, Error>,\n P2: Parser<I, O2, Error>,

    §

    fn permutation(&mut self, input: &mut I) -> Result<(O1, O2), Error>

    Tries to apply all parsers in the tuple in various orders until all of them succeed
    ","Permutation","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<T1, T2> PgHasArrayType for (T1, T2)

    §

    fn array_type_info() -> PgTypeInfo

    §

    fn array_compatible(ty: &PgTypeInfo) -> bool

    ","PgHasArrayType","mcaptcha::static_assets::static_files::assets::Img"],["
    Source§

    impl<T0, T1> Serialize for (T0, T1)
    where\n T0: Serialize,\n T1: Serialize,

    Source§

    fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
    where\n S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<V> TryIntoHeaderPair for (&str, V)
    where\n V: TryIntoHeaderValue,\n <V as TryIntoHeaderValue>::Error: Into<InvalidHeaderValue>,

    §

    type Error = InvalidHeaderPart

    §

    fn try_into_pair(\n self,\n) -> Result<(HeaderName, HeaderValue), <(&str, V) as TryIntoHeaderPair>::Error>

    ","TryIntoHeaderPair","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<Input, A, B, Error, FnA, FnB> Tuple<Input, (A, B), Error> for (FnA, FnB)
    where\n Input: Clone,\n Error: ParseError<Input>,\n FnA: Parser<Input, Output = A, Error = Error>,\n FnB: Parser<Input, Output = B, Error = Error>,

    §

    fn parse_tuple(&mut self, input: Input) -> Result<(Input, (A, B)), Err<Error>>

    👎Deprecated since 8.0.0: Parser is directly implemented for tuples
    Parses the input and returns a tuple of results of each parser.
    ","Tuple","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<T1, T2> Type<Postgres> for (T1, T2)

    §

    fn type_info() -> PgTypeInfo

    Returns the canonical SQL type for this Rust type. Read more
    §

    fn compatible(ty: &<DB as Database>::TypeInfo) -> bool

    Determines if this Rust type is compatible with the given SQL type. Read more
    ","Type","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<'a, T1, T2> Yokeable<'a> for (T1, T2)
    where\n T1: 'static + for<'b> Yokeable<'b>,\n T2: 'static + for<'b> Yokeable<'b>,

    §

    type Output = (<T1 as Yokeable<'a>>::Output, <T2 as Yokeable<'a>>::Output)

    This type MUST be Self with the 'static replaced with 'a, i.e. Self<'a>
    §

    fn transform(&'a self) -> &'a <(T1, T2) as Yokeable<'a>>::Output

    This method must cast self between &'a Self<'static> and &'a Self<'a>. Read more
    §

    fn transform_owned(self) -> <(T1, T2) as Yokeable<'a>>::Output

    This method must cast self between Self<'static> and Self<'a>. Read more
    §

    unsafe fn make(from: <(T1, T2) as Yokeable<'a>>::Output) -> (T1, T2)

    This method can be used to cast away Self<'a>’s lifetime. Read more
    §

    fn transform_mut<F>(&'a mut self, f: F)
    where\n F: 'static + for<'b> FnOnce(&'b mut <(T1, T2) as Yokeable<'a>>::Output),

    This method must cast self between &'a mut Self<'static> and &'a mut Self<'a>,\nand pass it to f. Read more
    ","Yokeable<'a>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<'zf, C1, T1, C2, T2> ZeroFrom<'zf, (C1, C2)> for (T1, T2)
    where\n T1: ZeroFrom<'zf, C1>,\n T2: ZeroFrom<'zf, C2>,

    §

    fn zero_from(other: &'zf (C1, C2)) -> (T1, T2)

    Clone the other C into a struct that may retain references into C.
    ","ZeroFrom<'zf, (C1, C2)>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<'a, A, B> ZeroMapKV<'a> for (A, B)
    where\n A: Ord + AsULE + 'static,\n B: Ord + AsULE + 'static,

    §

    type Container = ZeroVec<'a, (A, B)>

    The container that can be used with this type: [ZeroVec] or [VarZeroVec].
    §

    type Slice = ZeroSlice<(A, B)>

    §

    type GetType = Tuple2ULE<<A as AsULE>::ULE, <B as AsULE>::ULE>

    The type produced by Container::get() Read more
    §

    type OwnedType = (A, B)

    The type produced by Container::replace() and Container::remove(),\nalso used during deserialization. If Self is human readable serialized,\ndeserializing to Self::OwnedType should produce the same value once\npassed through Self::owned_as_self() Read more
    ","ZeroMapKV<'a>","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> Zeroize for (A, B)
    where\n A: Zeroize,\n B: Zeroize,

    §

    fn zeroize(&mut self)

    Zero out this object from memory using Rust intrinsics which ensure the\nzeroization operation is not “optimized away” by the compiler.
    ","Zeroize","mcaptcha::static_assets::static_files::assets::Img"],["
    §

    impl<A, B> ZeroizeOnDrop for (A, B)
    where\n A: ZeroizeOnDrop,\n B: ZeroizeOnDrop,

    ","ZeroizeOnDrop","mcaptcha::static_assets::static_files::assets::Img"]]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[135985]} \ No newline at end of file